Ответ AJAX, который я не могу понять - PullRequest
1 голос
/ 09 апреля 2011

У меня 2 вопроса:

Если я отправлю запрос ajax на собственную страницу (от abc.php до abc.php) следующим образом:

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });

Что будет содержать переменная msg, если у меня будет полная веб-страница (с элементами div, формами, imgs)? Будет ли он содержать весь HTML-код источника? Как заставить ajax возвращать только определенные детали (например, php $variable после запроса базы данных для записи, основанной на Name и Location). Помните, что some.php - это тот же файл, который содержит скрипт ajax.

Я хочу создать скрипт .php, содержащий все возможные запросы для управления базой данных, например:

if(isset($_GET['option']) && $_GET['option'] == 'insert') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'del') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'update') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'find') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'abc') { code here .. and echo div`s .. etc) }

и я хочу запустить ajax-запрос на основе option и получить конкретные результаты (например, переменные php $ ... и т. Д.)

Как мне это сделать?

В любом случае, самый важный вопрос - как мне получить ajax.result, который содержит только php $variable или $array, если страница, которая получает запрос ajax, уже содержит <html><body><divs><tables><h4><h3>.... etc?

Поскольку jquery.ajax() имеет довольно сложную / сложную документацию по своим параметрам, таким как accepts, async, complete, contentType, context .. and so on.

Большое спасибо.

Ответы [ 3 ]

1 голос
/ 09 апреля 2011

Переменная ответа msg будет содержать полный html страницы, которую вы запросили. Чтобы получить вместо этого переменную php, вам нужно упаковать переменную так, чтобы javascript мог ее понять, что обычно означает сериализацию объекта / переменной в формате json, а затем использование $.parseJSON или eval на msg результирующая строка в объект / массив javascript.

1 голос
/ 09 апреля 2011

Вы можете использовать опцию dataType, чтобы указать тип данных, которые вы ожидаете от сервера.В вашем случае JSON может быть хорошим вариантом, поскольку страница php может возвращать строку в форме:

  {name:value}

, которую легко обработать как объект JSON на клиенте.

Например, На этой странице найдено

 $.ajax({
   url: url,
   dataType: 'json',
   data: data,
   success: callback
 });

Ваша функция обратного вызова затем обработает JSON и получит значение.Как видно из ссылки, вы можете использовать метод getJSON () в качестве ярлыка.

0 голосов
/ 09 апреля 2011

Ответ: не отправляйте ajax-запрос на страницу, которая уже содержит <html><body и т. Д., Используйте страницу без этого.

Все, что вам нужно, это

echo $variable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...