【问题标题】:send data from phone to server将数据从手机发送到服务器
【发布时间】:2012-11-28 20:50:30
【问题描述】:

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

【问题讨论】:

    标签: sqlite cordova jquery-mobile


    【解决方案1】:

    尝试从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')
                });});
    

    【讨论】:

      【解决方案2】:

      对不起,我的小姐明白了……

      如果您使用的是 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
                  }
              ...
          }
      

      希望对你有帮助!

      【讨论】:

      • 是的,在 php 文件中,您使用 $_POST['rows'] 获取 json 字符串。您可以将该字符串解析为对象。作为替代方案,只需传递一个带有 id 的字符串,由一个字符分隔。
      • 嘿,这段代码不起作用.. !! :P 如果您将行转换为行:JSON.stringify(results.rows)。
      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2012-07-19
      • 2015-08-21
      • 2011-07-28
      相关资源
      最近更新 更多