Вот типичный Ajax-запрос для моего приложения, он может проиллюстрировать некоторые моменты:
$.ajax({
url: "link.php",
timeout: 30000,
data: 'user_id='+id, //data in to php
dataType: 'json', //data type being returned
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("An error has occurred making the request: " + errorThrown)
},
success: function(returndata){
$('#row1').html(returndata.value1);
$('#row2').html(returndata.value2);
}
});
Итак, чтобы получить правильные возвращаемые результаты способом, который вы используетевам нужно не только отправить правильные данные (json, XML и т. д.), но и сообщить jQuery, что они получают.Только тогда он узнает, как правильно проанализировать его в обратном вызове returndata.
Один из самых простых способов сделать это состоит в том, чтобы ваша страница ajax вызывала другую страницу, которая выполняет --php stuff-- и возвращаетмассив.Затем просто откройте json_encode ($ array) на этой странице и ничего больше.Пока вы объявляете свой тип данных как Json, вы будете иметь доступ к своим данным в функции успеха через returndata.datafieldname.Если в вашем массиве есть поле с именем id, и ваша функция успеха использует переменные данные для получения возвращаемых результатов, вы можете получить доступ к этим данным внутри функции успеха через data.id.
В вашем конкретном примере:похоже, вы пытаетесь установить значения с данными PHP, которые не возвращаются Ajax.Если это так, то почему бы просто не сделать $ .post?