ajaxjqueryphp返回值
我是AJAX新手,对PHP传递回jQuery的内容有些困惑。 因此,您有一个如下的AJAX函数:ajaxjqueryphp返回值,php,jquery,ajax,Php,Jquery,Ajax,我是AJAX新手,对PHP传递回jQuery的内容有些困惑。 因此,您有一个如下的AJAX函数: $.ajax({ url: '/my/site', data: {action: 'test'}, type: 'post', success: function(output) { alert(output); } }); success: function(data) {functionfooc
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
success: function(data) {functionfoocommandshere}
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.name[0] === "John");
}
});
(我从ajax的另一个StackOverflow页面中获取了此信息。)
但在其他各种资源上,他们的成功部分如下所示:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
success: function(data) {functionfoocommandshere}
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.name[0] === "John");
}
});
我只是对这个变量的命名方式感到困惑?如果PHP最终回显一个数组:
echo $myVar;
如何从AJAX中获取这些信息?可以从
success
块检索从PHP AJAX函数返回的数据。这是我的建议
在PHP文件中,使用将数组转换为更方便的格式,以便在Javascript中使用。所以你会有这样的想法:
echo json_encode($myArray);
然后,在JavaScript中,success
方法的data
变量将保存JSON。使用jQuery将其转换为JavaScript对象,这样就很容易操作了。我不知道数组包含什么,但您可以执行以下操作:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
success: function(data) {functionfoocommandshere}
$.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的常用且方便的方法。
<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;?>
$.ajax({
url:“/my/site”,
数据:{action:'test'},
键入:“post”,
成功:功能(输出){
警报(输出);
}
});
打印/回显的任何输出都将返回到success函数。当您想要用需要实时运行的内容填充html容器时,这非常方便
一旦掌握了这个窍门,另一个选项是使用JSON返回带有值的变量。Ajax请求获取整个站点。因此,您不会在变量中获取任何数据,而是在数据参数中获取整个站点。您一起制作的所有回声都将在此参数中。如果要检索数组,应该先将其转换为json
echo json_encode($myArray);
然后您可以通过Ajax以这种方式接收它
$.ajax({ url: '/my/site',
data: {action: 'test'},
dataType: 'json',
type: 'post',
success: function(output) {
alert(output);
}
});
success
方法的data
变量将保存PHP中的任何echo
。不能直接传递数组;您必须首先将其转换为JSON。您对哪个变量的命名感到困惑?请参见下面包含返回php信息的变量。那就没关系了?.ajax命令将知道函数()参数中的任何内容都在返回php信息?此外:您可以echo
php中的数组,您可以print\u r
或var\u dump
或序列化它,但是echo
用于字符串或整数等。所以这无关紧要?.ajax命令将知道函数()参数中的任何内容都在返回php信息?这不是“知道”的问题,这是.ajax描述的一部分:success函数接收返回的数据作为参数。-1您不能自动保证ajax调用会知道传递的JSON实际上是JSON…..而Jquery不是处理PHP,而是处理数据(请记住,PHP在输出到屏幕(JQuery可以访问数据)之前会进行解释)默认情况下,它会尝试其最佳猜测,这并不保证是JSON。这就是为什么最佳实践是定义数据类型(可以是JSON、text、jsonp、html等)然后作为成功函数中的返回。检索完整的html格式时,我只想返回值您真的需要echo
该值吗?如果您不想显示output
,该怎么办?@Gnietschowecho
不会向用户显示任何内容,它只在响应中写入数据在ajax调用收到输出后,是否向用户显示此响应取决于您自己。