Я новичок в 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); } });