Sé que hay una forma mucho más elegante/eficiente de hacerlo (en php usaría foreach) pero con jQuery, ¿cómo puedo recorrer los pares var/val de una respuesta JSON y rellenar campos de formulario con los mismos id que nombres de campo en la respuesta JSON?"Walk" respuesta JSON y rellenar campos de formulario: ¿un enfoque más eficiente?
aquí está mi respuesta 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"}]
Aquí está mi código jQuery para rellenar el formulario:
$(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);
}
});
});
});
});
que todo trabaja muy bien y bueno, pero realmente quieren evitar todo el if/las declaraciones else y simplemente usan los datos que regresan del método getJSON para determinar qué campos se llenan con qué valores. ¿Cuál es un enfoque más limpio/más eficaz para esto?
- Nicholas
Excelente respuesta. Funciona perfectamente y es exactamente lo que estaba buscando. Gracias. –
Esto funciona bien siempre y cuando todos los campos sean campos de entrada. ¿Pero qué pasa con los cuadros combinados, las casillas de verificación y los botones de radio? ¿No hay un buen complemento que se encargue de esto? – bart
Me pregunto lo mismo que Bart. –