从复选框更新Sqlite数据库

时间:2012-07-04 14:34:29

标签: jquery sqlite jquery-mobile cordova

我有一组复选框,我想在其中将“已检查”状态添加到数据库中。 我曾经将它们添加到localStorage中,如下所示:

    function SaveData()
    {
        var status = $('input[type="checkbox"]').filter('.custom').map(function(){
        var name = $(this).attr('name'); 
        var CheckBoxId= $(this).attr('CheckboxId');                                            
        if($(this).is(':checked'))
        return { 'name':name, 'status' : 'Checked', 'CheckBoxId':CheckBoxId}; 
        else
        return null;
        });
        localStorage["Days"] = status.length;

        for(var i = 0;i<status.length;i++)
        {

            localStorage["Day" + i] = status[i].name;


        }
    }

现在我想将它们添加到sqlite数据库,但是当我添加像这里的任何语句时,根本看不到javascript页面,所以我不知道在哪里写这个语句。

       for(var i = 0;i<status.length;i++)
        {
           tx.executeSql('UPDATE WeekDay SET Checked = 1 Where WeekId= status[i].CheckBoxId');  

        }

这是数据库中的表格:

    tx.executeSql('DROP TABLE IF EXISTS WeekDay');
    tx.executeSql('CREATE TABLE IF NOT EXISTS WeekDay (id unique, DayName, Checked INTEGER)');

是否有一些方法可以在函数本身内处理数据库?

1 个答案:

答案 0 :(得分:1)

您应该使用:

tx.executeSql('UPDATE WeekDay SET Checked = 1 Where WeekId= ?', [status[i].CheckBoxId]);  

您无法直接从查询中引用变量,您必须插入其值。