Возвращаемое значение PHP для jQuery AJAX

Я новичок в AJAX и смущен тем, что PHP передает обратно в jQuery. Таким образом, у вас есть функция AJAX:

$.ajax({ url: '/my/site', data: {action: 'test'}, type: 'post', success: function(output) { alert(output); } }); 

(Я взял это с ajax еще одной страницы StackOverflow.)

Но по разным другим ресурсам у них будет секция успеха:

  success: function(data) {functionfoocommandshere} 

Я просто смущен тем, что диктует название этой переменной? Если PHP в конечном итоге повторяет массив:

  echo $myVar; 

Как я могу получить это от AJAX?

Ajax-Requests выбирает весь сайт. Таким образом, вы не получите никаких данных в переменных, а весь сайт в параметре данных. Все эхо, которые вы собрали вместе, будут в этом параметре. Если вы хотите получить массив, вы должны преобразовать его в json раньше.

 echo json_encode($myArray); 

Тогда вы можете получить его через Ajax таким образом

 $.ajax({ url: '/my/site', data: {action: 'test'}, dataType: 'json', type: 'post', success: function(output) { alert(output); } }); 

В вашем PHP-файле используйте json_encode, чтобы превратить массив в более удобный формат для использования в Javascript. Таким образом, у вас будет что-то вроде:

 echo json_encode($myArray); 

Затем в вашем JavaScript переменная данных метода success будет содержать JSON. Используйте parseJSON jQuery, чтобы преобразовать его в объект JavaScript, который тогда будет очень легко манипулировать. Я не знаю, что у вас массив, но вы можете сделать что-то вроде этого:

 $.ajax({ url: '/my/site', data: {action: 'test'}, type: 'post', success: function(data) { var obj = jQuery.parseJSON(data); alert(obj.name[0] === "John"); } }); 

Опять же, переменная data здесь будет содержать все ваши выходы PHP, но JSON – это обычный и удобный способ передачи данных обратно на ваш JavaScript.

 <script type="text/javascript"> $.ajax({ url: '/my/site', data: {action: 'test'}, type: 'post', success: function(output) { alert(output); } }); </script> <?php $action = $_POST['action']; echo $action;?> 

Любой вывод, который печатается / эхосигнал, будет возвращен функции успеха. Это удобно, если вы хотите заполнить контейнер html тем, что вам нужно запустить в режиме реального времени.

Как только вы получите это, другой вариант – использовать JSON для возврата переменных со значениями.

Данные, возвращаемые функцией PHP AJAX, могут быть извлечены из блока success . Вот руководство

  $.ajax({ url: '/my/site', data: {action: 'test'}, type: 'post', dataType: 'json', success: function(output) { //output is the data returned from PHP AJAX function in JSON format alert(output); } });