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

Used explode to convert php string to array, need help manipulating this in javascript

本文关键字:javascript 操作 帮助 数组 php 转换 字符串      更新时间:2023-09-26

我正在将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,您就可以设置