我正在尝试使用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>
注意:我不是在寻找有人为我编写解决方案,我只是希望得到一些指导或一些关于我缺少或做错的想法。谢谢!
答案 0 :(得分:0)
frm
未定义。frm
不需要在$('[name='+key+']', frm).val(value);
,因为您只需要更新字段值。我知道你不想让我写出解决方案,但这只是你的方法是正确的。这只是你错过的小细节。
基本上,如果您的回答类似于{'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;
});