2017-03-13 1 views
0

数時間のヒットとトライアルの後、このコードはさまざまな投稿を見て、最終的に役立ちました。しかし、私は誰かが私の機能(私、dat)を理解するのを手助けしたい、これは何を意味するのですか?websqlループ内のInsert文、データソース - json

function get_assignedtasks_first_time(){ 
 
var jdata=$.getJSON("http://45.114.246.107/quicktask/webservice/admtask.php?entdt=&entusr=SAURABH&company=&taskno=&status=&priority=&primary=", function(data) { 
 

 
db.transaction(function (tx) { 
 

 
    $.each(data, function(i, dat) { 
 
       tx.executeSql('INSERT INTO tasks (sno, taskdesc) VALUES("'+data[i]['SNO']+'", "'+data[i]['TASKDESC']+'")'); 
 
      }); 
 
      alert("completed"); 
 

 
}); 
 
      }); 
 
}

答えて

0

$.each 2つのパラメータに取る関数 - ここでは、以下の私の完全なコードです。最初は反復される配列で、2番目は配列の各要素に対して実行されるコールバック関数です。

アレイ内の各要素について、$.eachはこのコールバック関数を2つの引数で実行します。最初の引数(iとして定義)は、現在の要素のインデックスであり、2番目の引数(dat)は、各繰り返しの実際の要素です。

定義した関数では、配列の各要素から 'SNO'および 'TASKDESC'プロパティを抽出します。しかし、現在のエントリを含むdatパラメータを使用する代わりに、元の配列を使用しています(コードを少し複雑にして読み込みます)。機能を実現する

もう一つの方法は、次のようになります。この場合

function(index, element) { 

    // put these variables in quotes 
    var sno = "'" + element.SNO + "'"; 
    var taskdesc = "'" + element.TASKDESC + "'"; 

    // join these strings with commas 
    var values = [sno, taskdesc].join(','); 

    tx.executeSql("INSERT INTO TASKS (sno, taskdesk) VALUES(" + values + ")") 
    alert("inserted " + values); 

} 

を私たちは二番目のパラメータ(繰り返し処理されている要素)を使用しているので、我々は、すべてのインデックスを使用する必要はありませんでした。

+0

これは非常にきれいに見える、私はこのやり方もしようとしている、あなたは私にこの行の光を与えることができます - var sno = "'" + element.SNO + "'"; //これは2つの引用符とa +の前後の一重引用符を意味します。申し訳ありません私は初心者です – saurabh

+0

データベースに挿入する前に、文字列を一重引用符または二重引用符で囲む必要があります。 +記号は、文字列を組み合わせるだけです。 javascriptでは、文字列に引用符を追加する場合は、引用符を追加する場合は二重引用符で囲むか、引用符を追加する場合は引用符で囲む必要があります(二重引用符を文字列)。 – Brian