1

这是我想要做的。我有一段简单的 java 脚本代码,它获取复选框的值并从数据库中删除相应的值。假设我有三个选项红色、蓝色、黄色显示和红色被选中,红色的记录将被删除。

这段代码完美地完成了它。

var n = $('input[type=checkbox]:checked').val();
db.transaction(function (tx) {
                                tx.executeSql('delete from details where name = ?',[n],function(){
                                alert('The event is successfully deleted');
                            });

                        });

但要求也是捕获多个复选框选择(即)如果红色和蓝色都被选中或三个都被选中,则代码必须删除所选值的记录。我可以使用以下代码捕获在数组中选择的值。

var checkboxValues = $('.myCheckbox:checked').map(function() {
                        return $(this).val();
                    }).get();

现在我需要在 SQL 语句中使用这个字符串数组。我尝试了以下代码,但没有用。

db.transaction(function (tx) {
                                tx.executeSql('delete from details where name in (?)',[checkboxValues],function(){
                                alert('The event is successfully deleted');
                            });

其他一些答案建议我使用 toString() 和 join() 函数将数组对象转换为逗号分隔的字符串,但这些对我帮助不大。我怀疑我的 SQL 语句是否正确。请有人帮助我。提前致谢 !!

4

1 回答 1

2

也许您可以将函数转过来,以便它遍历返回的值并依次为每个值执行 db 函数。类似于以下内容:

    $(checkboxValues).each(function(tx){...

或者您可以考虑在第一个函数中找到每个值时执行 SQL 更新,只要您将安全性抛到窗外。然后您只需要将值包含为 athis并且您可能会丢失该变量。

于 2013-06-16T20:23:24.390 回答