отправка информации туда и обратно с AJAX - PullRequest
4 голосов
/ 17 июня 2009

С помощью $ .post вы можете отправлять информацию на сервер, но что, когда вам нужно получать информацию с сервера?

Как информация меняется от способа, которым может удерживаться переменная php, до способа, который может поддерживаться переменной javascript, и наоборот?

Ответы [ 5 ]

6 голосов
/ 17 июня 2009

Это больше относится к вашему вопросу: http://docs.jquery.com/Ajax/jQuery.post

Оповещение о результатах запроса test.php (HTML или XML, в зависимости от того, что было возвращено).

$.post("test.php", function(data){
  alert("Data Loaded: " + data);
});

Оповещение о результатах запроса test.php с дополнительной полезной нагрузкой данных (HTML или XML, в зависимости от того, что было возвращено).

$.post("test.php", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });

Получает содержимое страницы test.php, сохраняет его в объекте XMLHttpResponse и применяет функцию JavaScript process ().

$.post("test.php", { name: "John", time: "2pm" },
  function(data){
    process(data);
  }, "xml");

Получает содержимое страницы test.php, которое было возвращено в формате json ("John", "time" => "2pm")); ?>)

$.post("test.php", { func: "getNameAndTime" },
  function(data){
    alert(data.name); // John
    console.log(data.time); //  2pm
  }, "json");
4 голосов
/ 17 июня 2009

Выезд json_encode() и json_decode(). Теперь они являются частью PHP и позволяют переключаться между массивами PHP и ассоциативными массивами (или объектами stdClass) и массивами или объектами javascript (как JSON литерал).

По сути, вместо возврата xml или html вы можете выполнить echo json_encode($all_my_php_data); и получить обратно объект javascript.

Если вы передадите 'json' в качестве параметра типа вашего $ .post (), ваш обратный вызов успеха будет содержать объект JSON, который вы указали в своем PHP-скрипте.

$. Post () документация

0 голосов
/ 17 июня 2009

В http вы выполняете запрос от клиента (javascript в веб-браузере) на сервер, а затем обрабатываете информацию, возвращенную последним. Выбор способа представления информации в обоих сообщениях остается за вами.

При использовании AJAX (возможно, через jQuery) вы можете отправить запрос обработчику php, который будет отвечать за возвращение информации в браузер, обычно в формате JSON литерал (вы можете кодировать ответ с использованием json_encode (), как предложено Брайаном). В конце концов вы проанализируете его на клиенте (например, с помощью jQuery), чтобы получить объект javascript.

(функция $ .post (url, [data], [callback], [type]) автоматически проанализирует ответ и выдаст его функции обратного вызова, подпись которой должна быть callback (data, textStatus), где data - это анализируемый объект, а textStatus сообщает об успешном или неудачном состоянии ( jQuery.post ).

0 голосов
/ 17 июня 2009

Часть " callback " функции jQuery.post - это то, что вы хотите посмотреть.

0 голосов
/ 17 июня 2009

Затем вам нужно получить контент, отправленный обратно с сервера. Вы просто определяете функцию обратного вызова для $ .post с параметром 'data'. Например:

$.post('/index.php', { key: 'value' }, function(data) { alert(data); });

Вы можете указать тип возвращаемого значения, чтобы jQuery мог автоматически его обработать. Если вы возвращаете значение JSON из PHP-скрипта, вам следует добавить дополнительный параметр в конце:

$.post('/index.php', { key: 'value' }, function(data) {
    alert(data.someItem);
  }, 'json');

Но если вам нужно получить данные с PHP-сервера без POSTing или GETting, то вам нужно внедрить Comet. Но это немного больше работы:)

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