gpt4 book ai didi

php - Ajax 成功 jquery php

转载 作者:行者123 更新时间:2023-11-29 02:57:39 25 4
gpt4 key购买 nike

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

这是我的 php 页面的 json_encode 响应,当我回显时看起来像这样

Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613
Studentid=T-15981
Studentname=John
Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613
Studentid=T-15982
Studentname=Paul

我可以通过这样做得到这个结果

for (var i = 0; i < data.length; i++) {
console.log(data[i].schoolid);
console.log(data[i].subjectid);
console.log(data[i].studentid);
console.log(data[i].studentname);
}

我怎样才能使同一个条目的值只生成一次,就像 school idsubject id 的值只显示一次一样student idstudent name 等唯一值将显示两次,因为它有两个不同的值。

我希望得到这样的结果

Schoolid=015-08-0034-009-37
Subjectid=08-0034-00613

Studentid=T-15981
Studentname=John
Studentid=T-15982
Studentname=Paul

在传递 json_encode 之前或在从 php 接收到 json_encode 后在 ajax 中我应该在哪里修复这个?

if ($stmt - > rowCount() > 0) {
while ($selected_row = $stmt - > fetch(PDO::FETCH_ASSOC)) {
$basicinfo[] = array('schoolid' => $selected_row['schoolid'], 'subjectid' => $selected_row['subjectid'], 'studentid' => $selected_row['studentid'], 'studentname' => $selected_row['studentname']);
//$basicinfo1[] = array('schoolid' => $selected_row['schoolid'], 'subjectid' => $selected_row['subjectid']);
//$basicinfo2[] = array('studentid' => $selected_row['studentid'], 'studentname' => $selected_row['studentname']);
}
//$merge = array_merge($basicinfo1 , $basicinfo2);
//$add = $basicinfo1 + $basicinfo2)
//$input = array_map("unserialize", array_unique(array_map("serialize", $merge)));
$input = array_map("unserialize", array_unique(array_map("serialize", $basicinfo)));
echo json_encode($input, JSON_UNESCAPED_UNICODE);
}

最佳答案

以下代码将帮助您修复 PHP 中的数组

if ($stmt - > rowCount() > 0) {
//$new_data = array();
while ($v = $stmt - > fetch(PDO::FETCH_ASSOC)) {
$tmp_key = $v['SchoolId'].'-'.$v['SubjectId']; //adding a temp key

$new_data[$tmp_key]['SchoolId'] = $v['SchoolId'];
$new_data[$tmp_key]['SubjectId'] = $v['SubjectId'];

$sudky = (isset($new_data[$tmp_key]['Student'])) ? count($new_data[$tmp_key]['Student']) : 0; //getting the key for student child array
$new_data[$tmp_key]['Student'][$sudky]['StudentId'] = $v['StudentId'];
$new_data[$tmp_key]['Student'][$sudky]['StudentName'] = $v['StudentName'];
}
$new_data = array_values($new_data);
echo json_encode($new_data, JSON_UNESCAPED_UNICODE);
}

最终的JSON数据如下

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

在 Javascript 中,您必须在 for 循环中添加另一个循环,您已经有了它,它会遍历 Student 数据

以下是Javascript部分

<script>
$(document).ready(function($){
$.ajax({
type: "post",
url: "YOURSCRIPT",
dataType: "json",
success: function(data){
if(data!=''){
for (var i = 0; i < data.length; i++) {
alert(data[i].SchoolId);
alert(data[i].SubjectId);
var student = data[i].Student;
for (var j = 0; j < student.length; j++) {
alert(student[j].StudentId);
alert(student[j].StudentName);
}
}
}
}
});
});
</script>

关于php - Ajax 成功 jquery php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com