使用AJAX使用php脚本中的JSON数据填充表单
我正在用来自使用AJAX的php脚本的JSON数据填充表单。当我点击一个按钮时,输入字段被数据填充,但并非所有字段都被填充。这就像JQuery无法访问整个DOM,尽管我使用的是“window.onload=function()”。我还尝试了“jQuery(document).ready(function()”。我还将Javascript放在html页面标记的底部 这是我的职责:使用AJAX使用php脚本中的JSON数据填充表单,php,jquery,ajax,forms,populate,Php,Jquery,Ajax,Forms,Populate,我正在用来自使用AJAX的php脚本的JSON数据填充表单。当我点击一个按钮时,输入字段被数据填充,但并非所有字段都被填充。这就像JQuery无法访问整个DOM,尽管我使用的是“window.onload=function()”。我还尝试了“jQuery(document).ready(function()”。我还将Javascript放在html页面标记的底部 这是我的职责: window.onload = function(){ $('#button_dossier').cl
window.onload = function(){
$('#button_dossier').click(function(){
var clickBtnValue = $('#zipsearch').val();
var ajaxurl = 'fill_form.php',
data = {'action': clickBtnValue};
$.post(ajaxurl, data, function (response) {
document.getElementById("datum_p").value =response.key;
document.getElementById("install").value =response.key;
document.getElementById("adres_t").value =response.key;
document.getElementById("vp").value =response.key;
document.getElementById("naam_vp").value =response.key;
document.getElementById("adres_vp").value =response.key;
document.getElementById("tel_vp").value =response.key;
document.getElementById("naam_oz").value =response.key;
document.getElementById("svc").value =response.key;
document.getElementById("tel_oz").value =response.key;
document.getElementById("c1").value =response.key;
document.getElementById("c2").value =response.key;
document.getElementById("c3").value =response.key;
document.getElementById("c").value = response.key;
document.getElementById("opn").value =response.key;
document.getElementById("moti").value =response.key;
document.getElementById("hd").value =response.key;
document.getElementById("set").value =response.key;
document.getElementById("ip").value =response.key;
},'json');
});
};
这里出了什么问题?还是函数被限制在行中
提前谢谢
---编辑---
我已将“response[];”更改为“response.key;”。这是我的错误。这些行如
document.getElementById("datum_p").value = response[];
不会有任何效果,因为response[]
是一个L值,是array.push(Value)
的缩写,您可能的意思是
document.getElementById("datum_p").value = response["datum_p"];
可以将其缩短为(使用jQuery时):
此外:
$.post(ajaxurl, data, function (response) {
$("#datum_pl").remove();
setField("datum_p",response);
...
});
要使其完全通用,您可以迭代响应对象的属性,但这必须与100%的表单字段相对应。也许您应该尝试或更高级一点。它们中的每一个都是一个jQuery插件,处理从html表单到html表单的javascript/json数据的序列化/反序列化。什么
响应
您得到了什么?应该使用response['key'或response.key.document.getElementById(“datum_p”)。value=response[]
–这完全没有意义。我更改了脚本。我忘了向脚本中添加键。但它仍然不起作用。只有9个表单元素被填充。其他元素是空的。出于测试目的,我只使用了一个键(名为key)因为我还得写我的php脚本。你真的在所有字段中都放了相同的对象属性吗?问题解决了。我删除了所有带有“$(#id).val(response.key);”的“document.getElementById(id).value=response.key”现在所有的文本字段都被填满了…getElementById函数似乎受到了限制。谢谢你的帮助!我已经更改了脚本。我忘了向其中添加键。但它仍然不起作用。只有9个表单元素被填满。其他元素为空。出于测试目的,我只使用了一个键(命名键)因为我仍然需要编写我的php脚本。问题解决了。我删除了所有带有“$”(#id).val(response.key);”的“document.getElementById(id).value=response.key”,现在所有的文本字段都被填满了……看来getElementById函数是有限的,或者其他什么的。谢谢你的帮助!
$.post(ajaxurl, data, function (response) {
$("#datum_pl").remove();
setField("datum_p",response);
...
});