Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ajax中通过php访问javascript中关联数组的元素_Javascript_Php_Jquery_Arrays_Ajax - Fatal编程技术网

如何在ajax中通过php访问javascript中关联数组的元素

如何在ajax中通过php访问javascript中关联数组的元素,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,所以我要做的是从一个由ajax函数调用的php文件中回显一个多维数组 这是php文件中的数组的外观: Array ( [0] => Array ( [username] => klara [lev] => 0 ) [1] => Array ( [username] => mira [lev] => 0 ) [2] => Array (

所以我要做的是从一个由ajax函数调用的php文件中回显一个多维数组

这是php文件中的数组的外观:

Array
(
[0] => Array
    (
        [username] => klara
        [lev] => 0
    )

[1] => Array
    (
        [username] => mira
        [lev] => 0
    )

[2] => Array
    (
        [username] => coursera
        [lev] => 0
    )

[3] => Array
    (
        [username] => chang
        [lev] => 2
    )

[4] => Array
    (
        [username] => jack
        [lev] => 3
    )

[5] => Array
    (
        [username] => elon
        [lev] => 4
    )

[6] => Array
    (
        [username] => musk
        [lev] => 7
    )

)
我的Ajax成功函数如下所示:

success: function (response) 
{ 
    alert("response="+response);
    var array_length = Object.keys(response).length;                
    alert("array length="+array_length);

    alert("response[0][0]="+response[0][0]);


}
response=[{"username":"klara","lev":0},{"username":"mira","lev":0},{"username":"coursera","lev":0},{"username":"chang","lev":2},{"username":"jack","lev":3},{"username":"elon","lev":4},{"username":"musk","lev":7}]
array length=204
response[0][0]=[
因此,输出如下所示:

success: function (response) 
{ 
    alert("response="+response);
    var array_length = Object.keys(response).length;                
    alert("array length="+array_length);

    alert("response[0][0]="+response[0][0]);


}
response=[{"username":"klara","lev":0},{"username":"mira","lev":0},{"username":"coursera","lev":0},{"username":"chang","lev":2},{"username":"jack","lev":3},{"username":"elon","lev":4},{"username":"musk","lev":7}]
array length=204
response[0][0]=[
所以发生的事情是,“数组长度”得到的是响应的长度,而不是行数,如果我放置一个for循环并尝试提取元素,那么它将提取响应中的每个字符

那么,我应该如何获得响应中的行数,以及如何获得username的值呢。也就是说,我希望将行数设为7,并提取名称“klara”、“mira”等。我应该如何做?我真的是新手,所以任何帮助都将不胜感激。非常感谢

非常感谢!:)

用于将字符串转换为JSON对象

    response = JSON.parse(response)
    alert("response="+response);
    var array_length = Object.keys(response).length;                
    alert("array length="+array_length);

    alert("response[0][0]="+response[0][0]);

您有一个数组,每个数组元素都是一个javascript对象,具有属性
name
lev
。使用对象表示法访问它们…在迭代数组时,不要在数组上使用
object.keys()
,确保在ajax请求上设置
dataType:'json'
,也确保使用
json\u encode()
在php数组上…javascript无法读取php数组的var dump当您设置正确的数据类型且数组元素对象没有属性时无需自行解析
[0]
Hi@Vladu Ionut非常感谢您的回复…我尝试了您的建议,数组长度的输出确实为7,但响应为[0][0],我得到了未定义的输出..有什么想法吗?@KlaraNewbie,原因与我上面提到的完全相同。。。数组元素是对象,而不是中的数组javascript@charlietfl哦,好的,那么我应该如何解决这个问题呢?阅读链接的答案/教程…您需要迭代主数组并访问该循环中的每个对象