AJAX jQuery PHP返回值

时间:2012-11-13 18:06:24

标签: php jquery ajax

我是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中获取此信息?

4 个答案:

答案 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); 
   }
 });