1

我正在尝试使用 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');
        }
    });
4

2 回答 2

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')
            });});
于 2012-12-11T10:51:45.217 回答
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
            }
        ...
    }

希望能帮助到你!

于 2012-12-11T10:22:29.833 回答