我使用脚本来自动填充表单。当用户从下拉列表中选择一个选项时,它会向外部文件发出 AJAX 请求(使用 json_encode
从数据库返回数据),并自动填充表单。
代码如下:
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
相应。
最佳答案
我想这样的事情可能会起作用:
function myrequest(e) {
var name = $('#username').val();
$.ajax({
method: "POST",
url: "autofill.php",
dataType: 'json',
cache: false,
data: {
username: name
},
success: function(responseObject) {
for (var prop in responseObject) {
if (responseObject.hasOwnProperty(prop)) {
$('#' + prop).val(responseObject[prop]);
}
}
}
});
}
关于javascript - 自动解析和格式化 JSON 属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42650724/