将PHP数组发送到Javascript

时间:2011-05-02 21:10:43

标签: php javascript ajax json

///////更新 - 我已经在我的代码中包含了jquery库,所以如果jquery比javascript更容易让我知道。

行。这里有很多问题是向JavaScript发送一个JavaScript数组,但只有1个与我的相同。不幸的是我不明白答案。

所以,目前我在php中有一个关联数组。然后我使用了这段代码,

echo json_encode($this->_inputErrors);

我并不知道我为什么要使用它,只是在其他这样的例子中提到了很多。然后,然后将数据发送到javascript(通过ajax),如果我执行此代码,

alert(requestText);

我得到了很长的文字。正如我想象的那样。

那么我如何在javascript中将文本恢复为数组呢?

或者有更好的方法吗?

非常感谢你的时间,

克里斯

5 个答案:

答案 0 :(得分:5)

var o = JSON.parse( requestText );

包含此内容(https://github.com/douglascrockford/JSON-js/blob/master/json2.js)以支持旧浏览器。

答案 1 :(得分:3)

requestText是一个JSON字符串。您需要将字符串解析为对象。

您可以使用JSON.parse将字符串转换为JSON。

var obj = JSON.parse(requestText);

如果您的浏览器没有JSON,请加入:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

答案 2 :(得分:0)

您需要将返回类型设置为JSON

或者如果使用jQuery,您可以使用jQuery的方法getJSON()从URL获取JSON对象

答案 3 :(得分:0)

有一天,我遇到了同样的问题。检查我的解决方案:)

array.html

$(document).ready(function(e){

    //This array is where I'll receive the PHParray
    var js_array=new Array();

    $("#btn").click(function(e){
             $.ajax({
                type:    'POST',
                 url:     'vector.php',
                 cache:   false,
                 success: function(data){

                    js_array=data;
                   //I use this "for" to print each array item into a div called "data".
                    for(var i=0;i<js_array.length;i++){
                         $("#data").append("<p>"+js_array[i]+"</p>");
                    }

                 },
                 dataType: 'json'
             });                  
    });                    

});

vector.php

<?php

$array = array(1,2,3,4,5,6);

/*As you, I use "json_encode" to serialize the array
echo json_encode($array);

?>

我希望它可以提供帮助(:

答案 4 :(得分:-1)

在Javascript中转换该长行文本的最简单方法是使用eval:

alert(eval('(' + requestText + ')'));