我是AJAX的新手,我对PHP传回jQuery感到困惑。 所以你有一个像这样的AJAX函数:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
(我从另一个StackOverflow页面获取了这个。)
但是在各种其他资源上,他们的成功部分看起来像这样:
success: function(data) {functionfoocommandshere}
我只是想知道这个变量的命名是什么?如果PHP最终回应一个数组:
echo $myVar;
如何从AJAX中获取此信息?
答案 0 :(得分:13)
Ajax-Requests获取整个站点。因此,您不会在变量中获取任何数据,而是在data-parameter中获取整个站点。您一起制作的所有回声都将在此参数中。如果要检索数组,则应在之前将其转换为json。
echo json_encode($myArray);
然后你可以通过这种方式通过Ajax接收它
$.ajax({ url: '/my/site',
data: {action: 'test'},
dataType: 'json',
type: 'post',
success: function(output) {
alert(output);
}
});
答案 1 :(得分:6)
在PHP文件中,使用json_encode将数组转换为更方便的格式,以便在Javascript中使用。所以你会有类似的东西:
echo json_encode($myArray);
然后,在您的JavaScript中,data
方法的success
变量将保留JSON。使用jQuery的parseJSON将其转换为JavaScript对象,这将非常容易操作。我不知道你的数组包含什么,但你可能会这样做:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.name[0] === "John");
}
});
同样,这里的data
变量将包含PHP输出的任何内容,但JSON是将数据传输回JavaScript的常用方便方法。
答案 2 :(得分:3)
<script type="text/javascript">
$.ajax({
url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
</script>
<?php
$action = $_POST['action'];
echo $action;?>
打印/回显的任何输出都将返回到成功函数。当你想要用你需要实时运行的东西填充html容器时,这很方便。
一旦掌握了这个,另一个选择是使用JSON返回带有值的变量。
答案 3 :(得分:-1)
可以从success
块检索从PHP AJAX函数返回的数据。这是manual
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
dataType: 'json',
success: function(output) {
//output is the data returned from PHP AJAX function in JSON format
alert(output);
}
});