我正在将php中的一个数组(使用爆炸从字符串转换而来)发送到一个单独的javascript页面。我想知道如何进入javascript数组并实际检索数据值。
javascript中的数组(来自php文件)-
array(2) {
[0]=>
string(2) "30"
[1]=>
string(0) ""
}
array(2) {
[0]=>
string(2) "30"
[1]=>
string(0) ""
}
以下是javascript页面上的ajax调用-
$.ajax({
url: "GetTest.php",
type: "POST",
success: function(data){
alert("success");
console.log(data);
},
error: function(data){
alert('failure');
}
});
在php页面-
var_dump((explode(',', $something));
我如何进入这里并提取"30"值。我使用ajax调用来获取这些数据,然后将这个数组放在一个名为"data"的变量中,但如果我执行类似data[0]的操作,我会得到字母"a"作为响应。如有任何帮助,我们将不胜感激。谢谢,
如果返回数组本身,它将不会转换为JavaScript对象。我相信你会得到字符串"数组"。您需要做的是调用json_encode($your_array)
将数组转换为JavaScript对象。然后,PHP将返回一个JavaScript对象,如下所示:
{
"0": "30",
"1": ""
}
然后,您可以对响应调用JSON.parse,并像访问任何其他JavaScript对象一样访问该对象中的数据。
注意:如果您使用的是PHP<5.2并且没有安装JSON PECL扩展,json_encode()
函数将不可用,您需要编写一个函数将数组转换为JSON,或者找到其他人编写的函数。
JavaScript数组应该是这样的。。。
var myArray = ["30", "0"];
如果在索引0处得到"a",则可能是字符串而不是数组。
"array"[0] === "a"
因此,您需要首先修复客户端阵列。
纯javascript:
xhr.onreadystatechange = function()//where xhr is your request object
{
if (this.readyState === 4 && this.status === 200)
{
var yourArray = JSON.parse(this.responseText);
console.log(yourArray);//logs the array above, normally
}
};
请注意,IE,至少在9之前,并没有将JSON支持作为标准,在这种情况下,只需谷歌JSON.js并将其包含在标头中
在回显之前,还要确保发送的阵列是json_encode
'。
看看您添加的代码,我想说:用echo json_encode(explode(',',$someString));
替换var_dump,您就可以设置