0

データのストレージに WebSQL を使用する小さなアプリがあります。
このデータを Web サーバー (PHP+MySQL) と同期したい
主な問題は、WebSQL から JSON を作成して転送する方法がわからないことです。

//view the result from DB on a web-page
    $('body').html('<ul id="dataAllHere"></ul>')
     mybase.init.getAll = function(){
           var database = mybase.init.db;
           database.transaction(function(tx){
                  tx.executeSql("SELECT * FROM table", [], function(tx,result){
                         for (var i=0; i < result.rows.length; i++) {
                                item = result.rows.item(i).item;
                                due_date = result.rows.item(i).due_date;
                                the_type = result.rows.item(i).the_type;
                                id = result.rows.item(i).ID;
                                showAll(item,due_date, the_type, id);
                         }
                  });
           });
    }

    function showAll(item,due_date, the_type, id){
          $('#dataAllHere').append('<li>'+item+' '+due_date+' '+the_type+' '+id+'</li>');
    }
    mybase.init.getAll();

私は JSON にあまり詳しくありませんが、助けやアドバイスをいただければ幸いです。

4

2 に答える 2

0

基本的に、オブジェクト/配列を作成し、それを json にエンコードします。これは同じように見えますが、文字列がフォーマットされています。あなたのコードのために:

var myJson = [];
for (var i=0; i < result.rows.length; i++) {
    item = result.rows.item(i).item;
    due_date = result.rows.item(i).due_date;
    the_type = result.rows.item(i).the_type;
    id = result.rows.item(i).ID;
    showAll(item,due_date, the_type, id);

    myJson.push({item: item, due_date: due_date, the_type: the_type, id: id});
}

$.ajax({
    method: 'post',
    data: myJson,
    type: 'json',
    url: 'target.php'
})
于 2013-06-23T15:57:39.017 に答える
-1

結果からjsonにすべてをプッシュする必要がある場合は、ループを単純化できます。

for (var i=0; i < result.rows.length; i++) {
    myJson.push(result.rows.item(i));
}
于 2015-10-16T06:48:16.030 に答える