So che c'è un modo molto più elegante/efficiente di fare questo (in php vorrei usare foreach) ma con jQuery come posso camminare le coppie var/val di una risposta JSON e compilare i campi modulo con gli stessi id del i nomi dei campi nella risposta JSON?Risposta "JSON" "Walk" e compilazione di campi modulo: approccio più efficiente?
Qui è la mia risposta JSON:
[{"field":"svendor_name","value":"Vendor Name Inc."},{"field":"svendor_addr1","value":"1234 Vendor Lane."},{"field":"svendor_addr2","value":"Suite 100"},{"field":"svendor_city"
,"value":"Vendorville"},{"field":"svendor_state","value":"CA"},{"field":"svendor_zip","value":"90210"},{"field"
:"svendor_phone","value":"800-555-1234"}]
Ecco il mio codice jQuery per popolare la forma:
$(document).ready(function()
{
$('#svendor_name').bind("change", function()
{
var svendor = $("#svendor_name").val();
svendor = svendor.replace(/&/g, '*');
$.getJSON("get_vendors.php?sname=" + svendor,
function(data)
{
$.each(data,
function(i, item)
{
if(item.field == "svendor_name")
{
$("#svendor_name").val(item.value);
}
else if(item.field == "svendor_addr1")
{
$("#svendor_addr1").val(item.value);
}
else if(item.field == "svendor_addr2")
{
$("#svendor_addr2").val(item.value);
}
else if(item.field == "svendor_city")
{
$("#svendor_city").val(item.value);
}
else if(item.field == "svendor_state")
{
$("#svendor_state").val(item.value);
}
else if(item.field == "svendor_zip")
{
$("#svendor_zip").val(item.value);
}
else if(item.field == "svendor_phone")
{
$("#svendor_phone").val(item.value);
}
else if(item.field == "svendor_id")
{
$("#svendor_id").val(item.value);
}
});
});
});
});
che tutte le opere belle e buone, ma ci tengo a evitare tutti i se/istruzioni else e basta usare i dati che ritornano dal metodo getJSON per determinare quali campi vengono popolati con quali valori. Qual è un approccio più pulito/più efficace a questo?
- Nicholas
eccellente risposta. Funziona perfettamente ed è esattamente quello che stavo cercando. Grazie. –
Funziona bene finché tutti i campi sono campi di input. Ma per quanto riguarda le caselle combinate, le caselle di controllo e i pulsanti di opzione? Non c'è un buon plugin che si prende cura di questo? – bart
Mi sto chiedendo la stessa cosa del barbo. –