2016-07-09 14 views
1

Im Aktualisieren vieler Felder mit Ajax. Mein Server erhält eine Zeile von der Datenbank, dann bin ich JSON, der die Zeile codiert und diese als mein xmlhttp.responseText sendet.Eine schnellere Möglichkeit, viele Werte zu aktualisieren

Der Antworttext ist von der Form

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

im Browser ich JSON den Antworttext dann analysieren und beginne dann den langen Prozess die Werte der Aktualisierung wie folgt:

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 

Da der Die Element-ID stimmt mit den Spaltennamen überein, obwohl es eine Möglichkeit gibt, mein JavaScript-Objekt zu durchlaufen und alle meine Werte zu setzen. Irgendwelche Ideen?

+1

u nach einem Weg, um Schleife Javascript Objekt suchen? [Diese Frage] (http://stackoverflow.com/questions/684672/how-do-i-loop-through-o-enumerate-a-javascript-object) kann eine Hilfe sein. – MMhunter

Antwort

1

Die Lösung mit Object.keys und Array.forEach Funktionen:

var obj = JSON.parse(info); 

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

dies funktioniert, danke –

+0

@ConnorBishop, Gern geschehen – RomanPerekhrest

+0

Gibt es ein Äquivalent dazu für php, dh nach dem Zurückziehen einer Zeile aus einer Datenbank können wir dann Aload von Variablen setzen, benannt mit den Namen der Spalten –

2

Dieser Code sollte über Ihr Json-Objekt iterieren und die Werte aktualisieren.

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

Nur für die Sicherheitsüberprüfung sollten wir überprüfen, ob das Element zuerst existiert, aber es war fast derselbe Code, den ich posten wollte. :) – NoLifeKing

+0

Ich bekomme dies: TypeError: null ist kein Objekt (Bewertung 'document.getElementById (Schlüssel) .value = p [Schlüssel]') –

+0

Und es ist nur die Aktualisierung des ersten Wertes –

Verwandte Themen