Как вернуть данные из PHP в ajax-вызов jQuery - PullRequest
44 голосов
/ 09 марта 2010

Я публикую некоторые данные, используя ajax. Я хочу манипулировать этими данными и вернуться к вызывающему скрипту jQuery.

Вот мой JQuery:

$.ajax({
  type: "POST",
  url: "somescript.php",
  datatype: "html",
  data: dataString,
  success: function() {
    //do something;
    }
});

Вот мой somescript.php на сервере:

  <?php
    //manipulate data
    $output = some_function(); //function outputs a comma-separated string
    return $output;
  ?>

Правильно ли я делаю это на стороне сервера и как получить доступ к возвращаемой строке после завершения вызова ajax?

Ответы [ 3 ]

72 голосов
/ 09 марта 2010

Я понял это. Нужно использовать эхо в PHP вместо возврата.

<?php 
  $output = some_function();
  echo $output;
?> 

И JQ:

success: function(data) {
  doSomething(data);
}
15 голосов
/ 09 марта 2010

Это аргумент, переданный вашей функции успеха:

$.ajax({
  type: "POST",
  url: "somescript.php",
  datatype: "html",
  data: dataString,
  success: function(data) {
    alert(data);
    }
});

Полная подпись - success(data, textStatus, XMLHttpRequest), но вы можете использовать только первый аргумент, если возвращается простая строка. Как всегда, см. Документацию для полного объяснения :)

2 голосов
/ 09 марта 2010

Да, то, как вы это делаете, совершенно законно. Чтобы получить доступ к этим данным на стороне клиента, отредактируйте свою функцию успеха, чтобы принять параметр: data.

$.ajax({
    type: "POST",
    url: "somescript.php",
    datatype: "html",
    data: dataString,
    success: function(data) {
        doSomething(data);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...