我使用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调用完成后如何访问返回字符串?
答案 0 :(得分:72)
我明白了。需要在PHP中使用echo而不是return。
<?php
$output = some_function();
echo $output;
?>
jQ:
success: function(data) {
doSomething(data);
}
答案 1 :(得分:15)
这是传递给你的成功函数的一个参数:
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
alert(data);
}
});
完整的签名是success(data, textStatus, XMLHttpRequest)
,但如果它是一个简单的字符串,你可以使用他的第一个参数。与往常一样,see the docs for a full explanation:)
答案 2 :(得分:2)
是的,你这样做是完全合法的。要在客户端访问该数据,请编辑您的成功函数以接受参数:data。
$.ajax({
type: "POST",
url: "somescript.php",
datatype: "html",
data: dataString,
success: function(data) {
doSomething(data);
}
});
答案 3 :(得分:2)
基于接受的答案
$output = some_function();
echo $output;
如果结果数组,然后使用json_encode,将得到javascript支持的json数组
$output = some_function();
echo json_encode($output);
如果有人想在回显某些结果后停止执行,请使用php的exit方法。它将像返回关键字一样工作
$output = some_function();
echo $output;
exit;