如何从AJAX调用返回一个数组?

k_s*_*sel 47 javascript php ajax jquery json

我正在寻找一个更好的解决方案,使用jQuery进行AJAX调用,让PHP文件返回一个数组,并将它作为Javascript数组从客户端出来.这是我一直这样做的:

PHP文件(Example.php):

<?php
    $id_numbers = array('NES-ZL','NES-AL','SNS-ZL');

    for ($i=0; $i<count($the_array); $i++){
        echo $id_numbers[$i];
        echo '|';
    }
?>
Run Code Online (Sandbox Code Playgroud)

JS档案:

id_numbers = new Array();
$.ajax({
    url:"Example.php",
    type:"POST",
    success:function(msg){
        id_numbers = msg.split('|');
    }
});
Run Code Online (Sandbox Code Playgroud)

我目前的方法对我的口味来说有点太复杂了.

我想做的就是能够做到

return $id_numbers;
Run Code Online (Sandbox Code Playgroud)

在PHP端,并在AJAX调用后直接将其转换为Javascript数组.

想法,有人吗?

Ale*_*pin 117

使用JSON在客户端和服务器之间传输数据类型(数组和对象).

在PHP中:

在JavaScript中:

PHP:

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

JavaScript的:

id_numbers = JSON.parse(msg);
Run Code Online (Sandbox Code Playgroud)

正如Wolfgang所提到的,你可以为jQuery提供第四个参数来自动为你解码JSON.

id_numbers = new Array();
$.ajax({
    url:"Example.php",
    type:"POST",
    success:function(msg){
        id_numbers = msg;
    },
    dataType:"json"
});
Run Code Online (Sandbox Code Playgroud)

  • @k_sel 这几乎是一个行业标准。每个人都用它来进行 AJAX。您会注意到 JSON 也是有效的 JavaScript。 (3认同)
  • 不要忘记使用 `async: false` (2认同)

Wol*_*gel 9

看看PHP 中的json_encode().您可以使用dataType:"json"参数获取$ .ajax来识别它.