使用AJAX从php脚本填充表单和JSON数据

时间:2015-01-18 18:40:16

标签: php jquery ajax forms populate

我使用AJAX从php脚本填充表单和JSON数据。单击按钮时,输入字段将填充数据但不是全部。虽然我使用" window.onload = function()",但JQuery无法访问整个DOM。我也尝试过使用" jQuery(document).ready(function()"。我还在html页面的标签底部放置了我的Javascript ..

这是我的功能:

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

这里出了什么问题?或者功能是否限制在行中?。

提前致谢!

--- --- EDIT

我已经改变了#34;响应[];" to" response.key;"。这是我的错误..

2 个答案:

答案 0 :(得分:0)

这样的行
 document.getElementById("datum_p").value = response[];

将无效,因为response[]是L值和array.push(value)的简写,你可能意味着什么

 document.getElementById("datum_p").value = response["datum_p"];

可以缩短为(当你使用jQuery时):

 function setField(key, response) {
     $('#' + key).val(response[key]);
 }

此外:

 $.post(ajaxurl, data, function (response) {
            $("#datum_pl").remove();
            setField("datum_p",response);
            ...
 });

要使其完全通用,您可以迭代响应对象的属性,但这必须对应于表单字段100%。

答案 1 :(得分:0)

也许您应该尝试https://github.com/dtuite/jquery.populate或更高级的http://uic.megaflop.net/download/。它们中的每一个都是一个jQuery插件,用于处理来自/到html表单的javascript / json数据的序列化/反序列化。