1

我需要在 php 中返回一个数组并在 javascript 中使用它。当我打印返回值时,它会打印空字符串。我怎么会犯错?

$.ajax({
     type: "POST",
     url: "sort2.php",    
     success: function(result){      

     alert(result[0]);                                            

    }
});

//sort2.php

$data[0] = "book";
$data[1] = "pen";
$data[2] = "school";
echo json_encode($data);
4

4 回答 4

3

您可以将dataType您的$.ajax()请求更改为json并让 jQuery 自动从字符串解码您的 JSON 对象。

或者,您可以添加到您的 PHPheader('Content-Type: application/json')和 jQuery 也应该自动解码您的 JSON 字符串。

于 2012-04-09T07:07:26.367 回答
1

您必须解析 JSON 数据

$.ajax({
     type: "POST",
     url: "sort2.php",    
     success: function(result){      

     //Parse Json to Array 
     result = jQuery.parseJSON(result);
     alert(result) // would output the result array                                      

    }
});
于 2012-04-09T07:09:28.860 回答
1

在您的sort2.php文件中,更改以下代码:

echo json_encode($data);

header('Content-Type: application/json');
echo json_encode($data);

它的作用是告诉客户端浏览器将响应视为 JSON 数据并进行相应的解析,而不是默认的 HTML。

此外,请确保sort2.php文件与您进行 ajax 调用的 html 文件位于同一文件夹中。

希望这可以帮助。

于 2012-04-09T07:40:12.887 回答
1

您还可以使用 jQuery 的 $.post 方法,如下所示:(因此您无需更改 php 脚本,请参见此处:jQuery Post)。

$.post(
    'sort2.php', //script you request
    {}, //post-data you want to send
    function(result) {
        alert(result[0]); /*i like more: console.log(result); this way you can see it in firebug e.g.) */
    },
    'json' //data-type you expect
);
于 2012-04-09T07:46:42.020 回答