我在php中发送一个数组(使用explode从一个字符串转换)到一个单独的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”作为响应。 对此的任何帮助将不胜感激。 谢谢,
答案 0 :(得分:3)
如果要返回数组本身,则不会将其转换为JavaScript对象。我相信你会得到字符串“Array”。您需要做的是调用json_encode($your_array)
将数组转换为JavaScript对象。然后,PHP将返回一个如下所示的JavaScript对象:
{
"0": "30",
"1": ""
}
然后,您可以在响应上调用JSON.parse,并像访问任何其他JavaScript对象一样访问该对象中的数据。
注意:如果您使用的是PHP< 5.2并且没有安装JSON PECL扩展,json_encode()
函数将不可用,您需要编写一个函数将数组转换为JSON或找到其他人编写的函数。
答案 1 :(得分:0)
JavaScript数组应该如下所示......
var myArray = ["30", "0"];
如果你在索引0处得到'a',你可能有一个字符串而不是一个数组。
"array"[0] === "a"
因此,您需要先修复客户端阵列。
答案 2 :(得分:0)
纯粹的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并且你已全部设置