Hakuna matata!
Die Daten kommen in folgender Form daher:
wert||id||wert2||id2||wert3||id3||usw.
Arbeite dich nicht an einem eigenen Format ab, nimm dafür JSON, das könnte in deinem Fall etwa so aussehen:
[
{
id : "id1",
value : "wert1"
},
{
id : "id2",
value : false
}
]
In PHP gibt es die Funktionen json_encode() und json_decode() mit denen du Objekte und Arrays in JSON-Strings umwandeln kannst. In JavaScript gibt es analaog die Funktionen JSON.stringify() und JSON.parse(). In jeder verbreiteten Programmiersprache wirst du etwas ähnliches finden. Das ist schonmal ein Argument für JSON.
Meine Idee wäre, die Id danach zu untersuchen, ob der String "checkbox" darin vorkommt (meine IDs sind so aufgebaut, daß entweder input oder checkbox in der ID vorkommt)
Siehst du, das ist ein weiterer Nachteil den dein handgestricktes Format mit sich bringt, du willst schon die ID zweckentfremden und für irgendetwas missbrauchen, wofür sie garnicht vorgesehen ist. Mit JSON könntest du den einzelnen Datensätzen einfach eine weitere Eigenschaft "type" verpassen. Auf mein Beispiel übertragen:
[
{
id : "id1",
value : "wert1",
type : "text"
},
{
id : "id2",
value : true,
type : "checkbox"
}
]
Zum Schluss noch ein etwas vollständigeres Beispiel, das ich an deinen Quellcode angelehnt habe:
var einzeldata = JSON.parse( data );
for ( var i = 0; i < einzeldata.length; i++ ) { // Die for-Schleife hat sich auch vereinfacht
if ( einzeldata.type === "text" ) {
$('#' + einzeldata.id ).val( einzeldata.value );
} elseif ( einzeldata.type === "checkbox" ) {
$('#' + einzeldata.id ).prop('checked', einzeldata.value );
}
}
“All right, then, I'll go to hell.” – Huck Finn