Подтвердить что ты не робот

Как вернуть данные с PHP на вызов jQuery ajax

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

Вот мой 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?

4b9b3361

Ответ 1

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

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

И jQ:

success: function(data) {
  doSomething(data);
}

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

на основании принятого ответа

$output = some_function();
  echo $output;

если это массив результатов, тогда используйте json_encode, это приведет к массиву json, который поддерживается javascript

$output = some_function();
  echo json_encode($output);

Если кто-то захочет остановить выполнение после того, как вы получите какой-либо результат, используйте метод выхода php. Это будет работать как ключевое слово return

$output = some_function();
  echo $output;
exit;