///////更新 - 我已经在我的代码中包含了jquery库,所以如果jquery比javascript更容易让我知道。
行。这里有很多问题是向JavaScript发送一个JavaScript数组,但只有1个与我的相同。不幸的是我不明白答案。
所以,目前我在php中有一个关联数组。然后我使用了这段代码,
echo json_encode($this->_inputErrors);
我并不知道我为什么要使用它,只是在其他这样的例子中提到了很多。然后,然后将数据发送到javascript(通过ajax),如果我执行此代码,
alert(requestText);
我得到了很长的文字。正如我想象的那样。
那么我如何在javascript中将文本恢复为数组呢?
或者有更好的方法吗?
非常感谢你的时间,
克里斯
答案 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 + ')'));