2016-07-09 9 views
1

ajaxを使って多くのフィールドを更新しています。私のサーバーはデータベースから行を取得しています。次にJSONが行をエンコードしていて、これをxmlhttp.responseTextとして送信しています。同様多くの値を素早く更新する方法

var obj = JSON.parse(info); 
      document.getElementById("JobCardNum").value = obj.JobCardNum; 
      document.getElementById("IssueTo").value = obj.IssueTo; 
      document.getElementById("MachineShop").value = obj.MachineShop; 
....... lots of similar statements 

応答テキストは、私はその後、JSONは、応答テキストを解析し、そうような値を更新する長いプロセスを開始するブラウザで

{"JobCardNum":5063,"IssueTo":"MachineShop","Priority":"High" ...lots of data} 

形態であります要素IDは列名と一致しますが、JavaScriptオブジェクトをループしてすべての値を設定する方法があります。何か案は?

+1

uがループjavascriptオブジェクトへの道を探していますか? [この質問](http://stackoverflow.com/questions/684672/how-do-i-loop-through-or-enumerate-a-javascript-object)いくつかの助けになるかもしれません。 – MMhunter

答えて

1

Object.keysArray.forEach機能を使用してソリューション:

var obj = JSON.parse(info); 

Object.keys(obj).forEach(function(id){ 
    var el = document.getElementById(id); 
    if (el) el.value = obj[id]; 
}); 
+0

を更新し、感謝 –

+0

@ConnorBishopを、あなたは大丈夫です – RomanPerekhrest

+0

PHPに相当するものはありますか?つまり、データベースから行を退職させた後、PHPの場合は、列の名前で名前を付けられた変数のロードを設定することができます –

2

このコードは、jsonオブジェクトを反復処理して値を更新する必要があります。

for (var key in p) { 
    if (p.hasOwnProperty(key)) { 
    var el = document.getElementById(key); 
    if(el) el.value = p[key]; 
    } 
} 
+0

安全確認のために、要素が最初に存在するかどうかを確認する必要がありますが、私が投稿しようとしていたコードとほとんど同じです。 :) – NoLifeKing

+0

Imはこの取得: 例外TypeError:nullはオブジェクトではありません( 'のdocument.getElementById(キー).VALUE = P [キー]' を評価) –

+0

とそののみ、この作品最初の値 –

関連する問題