我使用腳本來自動填充表單。當用戶從下拉菜單中選擇一個選項時,它會向外部文件(使用json_encode
從數據庫返回數據)發出AJAX請求,並自動填充表單。自動解析和格式化JSON屬性名稱
下面的代碼:
function myrequest(e) {
var name = $('#username').val();
$.ajax({
method: "POST",
url: "autofill.php",
dataType: 'json',
cache: false,
data: {
username: name
},
success: function(responseObject) {
$('#posts').val(responseObject.posts);
$('#joindate').val(responseObject.joindate);
}
});
}
正如你看到的,當與ID username
下拉改變,AJAX調用時,並用ID posts
和joindate
表單字段自動填寫。
但是,我想爲更多的表單使用相同的函數,這些表單將具有不同ID的字段自動填充(當然JSON將返回其他數據)。有沒有辦法修改這個函數,所以我不需要爲每個要分析的JSON值編寫一個單獨的行(如$('#posts').val(responseObject.posts);
)。
換句話說,函數應該自動解析返回的JSON數據,如果有一個具有特定ID的字段,它應該被自動填充。因此,如果JSON返回像{"abc123":"666","some_other_field":"2017-03-06"}
這樣的數據,函數應該相應地查找並預先填充ID爲abc123
和some_other_field
的字段。
大多數這類問題可以用括號表示法來解決。例如,responseObject [someVariable] = someOtherValue。假設someVariable ='abc123',這將用someOtherValue填充responseObject.abc123(如果該對象上不存在該屬性,它將創建它)。因此,您可以傳遞一組屬性名稱和值,具體取決於您希望設置對象的方式,然後您可以繼續。 –