2016-08-15 188 views
0

JSON(GeoJSON的)數據我有下面這段代碼片段:無法SQLite中保存科爾多瓦

var json_data = document.getElementById("json_data").value; 
console.log(json_data); 

tx.executeSql('INSERT INTO floodmaps VALUES (?,?,?)', [1, flodMapName, json_data], function(tx, res) { 
    //console.log(res); 
    console.log("rowsAffected: " + res.rowsAffected + " -- should be 1"); 
    //console.log(res.rows.item(0).flood_name); 
    }, 
    function(tx, error) { 
    console.log('INSERT error: ' + error.message); 
    }); 

tx.executeSql('SELECT *FROM floodmaps', [], function(tx, res) { 
    //console.log(res); 
    console.log(res.rows.item(0).id); 
    console.log(res.rows.item(0).flood_name); 
    console.log(res.rows.item(0).json_data); 
    }, 
    function(tx, error) { 
    console.log('error: ' + error.message); 
    }); 

它的作用是讓從input元素的值,則該值保存到數據庫中。但它不保存,這是在調試控制檯消息:

rowsAffected: 1 -- should be 1 
main.js:208 null 
main.js:209 null 
main.js:210 null 
main.js:241 Transaction Successful 

但是,當我試圖使用像只是一個普通的文本/字的樣本數據,它保存成功。可能是什麼問題呢?

這是data

回答

0
var json_data = document.getElementById("json_data").value; 
console.log(json_data); 
var str_json_data=JSON.stringify(json_data); // my edits 
tx.executeSql('INSERT INTO floodmaps VALUES (?,?,?)', [1, flodMapName, str_json_data], function(tx, res) { 
    //console.log(res); 
    console.log("rowsAffected: " + res.rowsAffected + " -- should be 1"); 
    //console.log(res.rows.item(0).flood_name); 

    if(res.rowsAffected>0){ 
    tx.executeSql('SELECT * FROM floodmaps', [], function(tx, res) { 
    //console.log(res); 
     var len = res.rows.length, i; 

      for (i = 0; i < len; i++) { 
       console.log(res.rows.item(i)); 
      } 
    }, 
    function(tx, error) { 
    console.log('error: ' + error.message); 
    }); 

     } 
    }, 
    function(tx, error) { 
    console.log('INSERT error: ' + error.message); 
    }); 

,在插入

+0

我已經試過了,還是返回null之前字符串化JSON對象。數據來自遠程服務器,然後保存在'input'元素中,然後被檢索。 –

+0

試試我更新的答案 – Sachin

+0

同樣,它返回空值。必須是數據的大小。 –