从手机向服务器发送数据

时间:2012-12-11 10:09:37

标签: sqlite cordova jquery-mobile

我正在尝试使用PhoneGap框架开发一个Android移动应用程序,我想将我的本地数据库(我的手机)表同步到服务器数据库。

这是我的代码,但是这段代码只允许我发送一行表格,如何发送所有表格行。

$.ajax({
        type: 'POST',
        data: col1+'&lid='+col2,
        url: 'http://your-domain.com/comments/save.php',
        success: function(data){
            console.log(data);
            alert('Your data was successfully added');
        },
        error: function(){
            console.log(data);
            alert('There was an error adding your data');
        }
    });

2 个答案:

答案 0 :(得分:2)

尝试从localDatabase中选择数据并逐行发送,这是一个例子:

 db.transaction(function(tx) {
    Squery = 'SELECT * FROM news WHERE category_id ='+lid;
        tx.executeSql(Squery,
            null,
            function(tx, results)
            {
                    for(i=0; i<results.rows. length; i++){
                        row = results.rows.item(0);
                                $.ajax({ -- your code using row['name_of_column'] -- })
                              }
                        },
                        console.log('error')
            });});

答案 1 :(得分:1)

抱歉,我的小姐理解......

如果您使用的是phonegap,我猜您正在使用存储功能:http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Storage

在他们的一个例子中,您可以做类似的事情:

function queryDB(tx) {
    tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}

function querySuccess(tx, results) {

    //do you ajax request....
    ...
    data: {
        rows : results.rows
    }
    ...
}

function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}

var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(queryDB, errorCB);

其他选项是发送一个简单的数组...

function querySuccess(tx, results) {

  var myRowsIds = [];


  var len = results.rows.length;
        for (var i=0; i<len; i++){
            myRowsIds .push( results.rows.item(i).id )
        }

        //do you ajax request....
        ...
        data: {
                rows : myRowsIds
            }
        ...
    }
希望它有所帮助!