Ответ 1
Я понял это. Необходимо использовать эхо в PHP вместо возврата.
<?php
$output = some_function();
echo $output;
?>
И jQ:
success: function(data) {
doSomething(data);
}
Я отправляю некоторые данные с помощью 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?
Я понял это. Необходимо использовать эхо в PHP вместо возврата.
<?php
$output = some_function();
echo $output;
?>
И jQ:
success: function(data) {
doSomething(data);
}
Это аргумент, переданный вашей успешной функции:
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
alert(data);
}
});
Полная подпись success(data, textStatus, XMLHttpRequest)
, но вы можете использовать только первый аргумент, если она возвращает простую строку. Как всегда, см. Документы для полного объяснения:)
Да, то, как вы это делаете, совершенно законно. Чтобы получить доступ к этим данным на стороне клиента, отредактируйте свою функцию успеха, чтобы принять параметр: data.
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
doSomething(data);
}
});
на основании принятого ответа
$output = some_function();
echo $output;
если это массив результатов, тогда используйте json_encode, это приведет к массиву json, который поддерживается javascript
$output = some_function();
echo json_encode($output);
Если кто-то захочет остановить выполнение после того, как вы получите какой-либо результат, используйте метод выхода php. Это будет работать как ключевое слово return
$output = some_function();
echo $output;
exit;