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