jquery — заполнение формы данными JSON из php-скрипта с использованием AJAX

Я заполняю форму данными JSON из php-скрипта, используя AJAX. Поля ввода заполняются данными, когда я нажимаю кнопку, но не все из них. Как будто JQuery не может получить доступ ко всему DOM, хотя я использую «window.onload = function ()». Я также попытался с «jQuery (документ) .ready (function ()». Я также поместил свой Javascript в нижней части тега на HTML-странице ..

Это моя функция:

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;». Это была моя ошибка ..

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%.

0

Другие решения

Может тебе стоит попробовать https://github.com/dtuite/jquery.populate или немного более продвинутый http://uic.megaflop.net/download/. Каждый из них представляет собой плагин jQuery, занимающийся сериализацией / десериализацией данных javascript / json из / в html-формы.

0

По вопросам рекламы [email protected]