Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ajax запрос - как получить структурированный ответ от скрипта
Форумы портала PHP.SU » » HTTP и PHP » Ajax запрос - как получить структурированный ответ от скрипта

Страниц (1): [1]
 

1. shurik_7866 - 04 Января, 2016 - 19:40:36 - перейти к сообщению
В примерах которые я нашел в интернете, если нужно в страницу с которой был ajax запрос передать данные, используется конструкция echo с помощью которой формируется текст ответа.

ajax запрос
CODE (javascript):
скопировать код в буфер обмена
  1. var val = 1234567;
  2. $.ajax({
  3.         method: "GET",
  4.         url: "simple.php",
  5.         data: {"param1": val},
  6.         async: false,
  7.         success: function(data){
  8.                 alert(data);
  9.         }
  10. });


simple.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $p1 = $_GET["param1"];
  3. ......
  4. echo "тра-та-та";
  5. echo "ля-ля-ля";
  6. echo "и так далее";
  7. ...
  8. ?>


Вопрос: можно ли в ajax запросе получить от php скрипта структурированный ответ?

Например: как при перенаправлении на конкретную страницу используя функцию header
header('Location: http://localhost/siple.html?error_code=1&msg1=тра-та-та&msg2=ля-ля-ля&msg3=');
При этом формируется при этом передаюися значения конкретных переменных
2. DelphinPRO - 04 Января, 2016 - 21:09:33 - перейти к сообщению
В параметры запроса добавьте


и возвращайте json данные

PHP:
скопировать код в буфер обмена
  1. $response = array(
  2.     "key1": "тра-та-та",
  3.     "key2": "ля-ля-ля",
  4.     "key3": "и так далее",
  5. );
  6.  
  7. echo json_encode($response);

(Добавление)
Соответственно в коллбеке будет

CODE (javascript):
скопировать код в буфер обмена
  1. success: function(data){
  2.                 alert(data.key1);
  3.                 alert(data.key2);
  4.                 alert(data.key3);
  5.         }
3. shurik_7866 - 05 Января, 2016 - 14:35:08 - перейти к сообщению
Спасибо пользователю DelphinPRO, работает

только масив в PHP чуть по другому
PHP:
скопировать код в буфер обмена
  1. $response = array(
  2.     "key1"=> "тра-та-та",
  3.     "key2"=> "ля-ля-ля",
  4.     "key3"=> "и так далее"
  5. );

 

Powered by ExBB FM 1.0 RC1