Ajax jQuery从PHP获取数据值


ajax jquery get value of data from php

[{
    "SchoolId":"015-08-0034-009-37",
    "SubjectId":"08-0034-00613",
    "Student":[
        {"StudentId":"T-15981","StudentName":"John"},
        {"StudentId":"T-15982","StudentName":"Paul"}
    ]
}]

我有一个像我的 php json_encode这样的 json 格式。我正在获得这样的数据

for (var i = 0; i < data.length; i++) {
     console.log(data.[i].SchoolId);
     console.log(data.[i].SubjectId);
}

我想得到的值

 {"StudentId":"T-15981","StudentName":"John"},
 {"StudentId":"T-15982","StudentName":"Paul"}

如何获取两个条目的值?任何想法都值得赞赏

UPDATE

success: function(data) {

    for (var i = 0; i < data.student.length; i++) {
        console.log(data.student[i].StudentId);
        console.log(data.student[i].SchoolId);
    }
},

这是我通过将数据类型从 JSON 更改为 HTML 从 Ajax 响应中获得的print_r.这是network>XHR>Response 中的输出

Array
(
    [0] => Array
        (
            [SchoolId] => 015-08-0034-009-37
            [SubjectId] => 08-0034-00613
            [Student] => Array
                (
                    [0] => Array
                        (
                            [StudentId] => 015-08-0034-009-37
                            [firstname] => Chona
                            [lastname] => Sy
                            [middleinitial] => D
                        )
                    [1] => Array
                        (
                            [StudentId] => 015-08-0034-009-37
                            [firstname] => Alona
                            [lastname] => Sy
                            [middleinitial] => D
                        )
                )
        )
    [1] => Array
        (
            [SchoolId] => 015-08-0034-009-38
            [SubjectId] => 08-0034-00613
            [SupersededProperty] => Array
                (
                    [0] => Array
                        (
                            [StudentId] => 015-08-0034-009-36
                            [firstname] => Edith
                            [lastname] => Sy
                            [middleinitial] => D
                        )
                )
        )
)

您可以在 FIDDLE 中找到工作示例

JS代码

var e = {
    "Student":[
        {"StudentId":"T-15981","StudentName":"John"},
        {"StudentId":"T-15982","StudentName":"Paul"}
    ], 
    "SchoolId":"015-08-0034-009-37",
    "SubjectId":"08-0034-00613",
};

for(var i=0; i<e.Student.length; i++){
  alert('StudentId = ' + e.Student[i].StudentId + '; StudentName = ' + e.Student[i].StudentName);   
}
var data = [{
    "SchoolId":"015-08-0034-009-37",
    "SubjectId":"08-0034-00613",
    "Student":[
        {"StudentId":"T-15981","StudentName":"John"},
        {"StudentId":"T-15982","StudentName":"Paul"}
    ]
}] 
for(var i=0; i<data[0].Student.length; i++){
  var StudentData = data[0].Student[i];
   alert(StudentData.StudentId); 
}

你的问题是你在数组中有一个数组。这会导致您的 json 周围出现方括号 [{...}]。

Array
(
    [0] => Array
        (
...

不应回显第一个数组。

例如,现在似乎你有

echo json_encode(array($data));

相反,你应该有

echo json_encode($data);

作为最后的回应,尝试回显$data[0];

另请参阅此