自动解析和格式化JSON属性名称

时间:2017-03-07 14:22:38

标签: javascript jquery json ajax

我使用脚本自动填充表单。当用户从下拉列表中选择一个选项时,它会向外部文件(使用window从数据库返回数据)发出AJAX请求,并且表单会自动填充。

以下是代码:

json_encode

如您所见,当ID为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); } }); } 的下拉列表发生更改时,会调用AJAX,ID为usernameposts的表单字段会自动填充。

但是,我想对更多表单使用相同的函数,这些表单将自动填充具有不同ID的字段(当然,JSON将返回其他数据)。有没有办法修改这个函数,所以我不需要为每个要解析的JSON值写一个单独的行(如joindate)。

换句话说,该函数应该自动解析返回的JSON数据,如果有一个具有特定ID的字段,则应该自动填充。因此,如果JSON返回$('#posts').val(responseObject.posts);之类的数据,则函数应相应地查找并预填充ID {"abc123":"666","some_other_field":"2017-03-06"}abc123的字段。

1 个答案:

答案 0 :(得分:1)

我想这样的事情可行:

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]);
                }
            }
        }
    });
}