用于将php字符串转换为数组,需要帮助在javascript中操作它

时间:2012-07-09 14:08:06

标签: php javascript ajax arrays

我在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”作为响应。 对此的任何帮助将不胜感激。 谢谢,

3 个答案:

答案 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并且你已全部设置