Tôi biết có một cách thanh lịch/hiệu quả hơn để làm điều này (trong php tôi sẽ sử dụng foreach) nhưng với jQuery làm cách nào tôi có thể đi các cặp var/val của một phản hồi JSON và điền các trường biểu mẫu có cùng id như tên trường trong phản hồi JSON?"Đi bộ" phản hồi JSON và điền vào các trường biểu mẫu - cách tiếp cận hiệu quả hơn?
Đây là phản ứng JSON của tôi:
[{"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"}]
Đây là mã jQuery của tôi cho Populating dạng:
$(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);
}
});
});
});
});
Đó là tất cả hoạt động tốt và tốt, nhưng tôi thực sự muốn tránh tất cả các nếu/các câu lệnh khác và chỉ sử dụng dữ liệu quay lại từ phương thức getJSON để xác định các trường nào được điền với các giá trị nào. Một cách tiếp cận sạch hơn/hiệu quả hơn cho điều này là gì?
- Nicholas
phản ứng tuyệt vời. Hoạt động hoàn hảo và chính xác là những gì tôi đang tìm kiếm. Cảm ơn bạn. –
Điều này làm việc tốt miễn là tất cả các lĩnh vực là các lĩnh vực đầu vào. Nhưng còn về hộp tổ hợp, hộp kiểm và nút radio? Không phải là có một plugin tốt mà chăm sóc này? – bart
Tôi tự hỏi điều tương tự như bart. –