使用AJAX调用和JSON数据填充表单

时间:2015-12-15 02:09:50

标签: php jquery json ajax

我正在尝试使用AJAX调用填充表单字段,以返回返回JSON数据的php脚本。我已经尝试了两种方法,但都没有工作,我很确定我完全错过了一些东西......我以前从未使用过AJAX而且我发现它令人困惑。

  $("#loadDefault").click(function()
  {      

     $.getJSON('formdata.php', {act : 'default'},
     function(data) {
        $.each(data, function(key, value) {
        $('[name='+key+']', frm).val(value);
        })
     });
        /* function populate(frm, data) {
            $.each(data, function(key, value) {
                $('[name='+key+']', frm).val(value);
            });
        }

        populate('#myForm', $.parseJSON(data)); */



    return false;
  });

以下是供参考的HTML表格:__________________________________________________

<form id="myForm">

Name: <input type="text" id="name" name="name"> <br>

Postal Code: <input type="text" id="postal" name="postal"> <br>

Phone Number: <input type="text" id="phone" name="phone"> <br>

Address: <input type="text" id="address" name="address"> <br>

<input type="submit">

</form>

<a id="loadDefault" href="">Load Default Data</a> 
<br>

注意:我不是在寻找有人为我编写解决方案,我只是希望得到一些指导或一些关于我缺少或做错的想法。谢谢!

2 个答案:

答案 0 :(得分:0)

  1. 您的frm未定义。
  2. 同样frm不需要在$('[name='+key+']', frm).val(value);,因为您只需要更新字段值。
  3. 我知道你不想让我写出解决方案,但这只是你的方法是正确的。这只是你错过的小细节。

    基本上,如果您的回答类似于{'name': 'foo', 'postal': 'bar'},则js应该有效。

答案 1 :(得分:0)

也许您可以看一下这个视图引擎:https://jocapc.github.io/jquery-view-engine/如果对象的属性与表单的元素匹配,它允许您将AJAX响应中的JSON对象直接加载到表单中。你的代码看起来像:

  $("#loadDefault").click(function()
  {      
     $.getJSON('formdata.php', {act : 'default', dataType: 'json'},
     function(data) {
        $('#myForm').view(data);
     });
    return false;
  });