AJAX jQuery PHP返回值

eat*_*hil 8 php ajax jquery

我是新来的AJAX和我通过PHP通过什么回jQuery的一种困惑.所以你有一个像这样的AJAX函数:

 $.ajax({ url: '/my/site',
     data: {action: 'test'},
     type: 'post',
     success: function(output) {
                  alert(output);
              }
 });
Run Code Online (Sandbox Code Playgroud)

(我从另一个StackOverflow页面的ajax中获取了这个.)

但是在各种其他资源上,他们的成功部分看起来像这样:

 success: function(data) {functionfoocommandshere}
Run Code Online (Sandbox Code Playgroud)

我只是想知道这个变量的命名是什么?如果PHP最终回应一个数组:

  echo $myVar;
Run Code Online (Sandbox Code Playgroud)

我怎样才能从AJAX中获得这个?

Gni*_*how 13

Ajax-Requests获取整个站点.因此,您不会在变量中获取任何数据,而是在data-parameter中获取整个站点.您一起制作的所有回声都将在此参数中.如果要检索数组,则应先将其转换为json.

echo json_encode($myArray);
Run Code Online (Sandbox Code Playgroud)

然后你可以通过这种方式通过Ajax接收它

$.ajax({ url: '/my/site',
 data: {action: 'test'},
 dataType: 'json',
 type: 'post',
 success: function(output) {
              alert(output);
          }
 });
Run Code Online (Sandbox Code Playgroud)


woz*_*woz 6

在你的PHP文件中,使用json_encode将数组转换为更方便的格式,以便在Javascript中使用.所以你会有类似的东西:

echo json_encode($myArray);
Run Code Online (Sandbox Code Playgroud)

然后,在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");
      }
});
Run Code Online (Sandbox Code Playgroud)

同样,data这里的变量将包含PHP输出的任何内容,但JSON是将数据传输回JavaScript的常用且方便的方法.