我不知道我做错了什么,但我有这个表格,管理员可以在其中插入来自多个领域的学生。例如,管理员想要插入五个学生,每个学生都有一个 idNumber
、firstName
、middleName
、lastName
、courseYear
和 section
。我将所有具有相同属性的值分组,因为我认为我可以在 php 文件中轻松访问它们,因为它们将具有相同的索引。
这是我的 ajax 代码,我在其中循环值并通过访问类的索引将它们插入数组中:
for(var x=0; x < fieldsLength; x++) {
id_number[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_id_number').val();
first_name[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_firstname').val();
mid_name[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_midname').val();
last_name[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_lastname').val();
course_year[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_courseyear').val();
section[x] = $('#addStudMainTable tbody tr:eq(' + x + ') .add_stud_section').val();
}
这是我将这些数组作为对象和 ajax 的地方:
var data = {
idNumber: id_number,
firstName: first_name,
middleName: mid_name,
lastName: last_name,
courseYear: course_year,
section: section
};
var dataJson = JSON.stringify(data);
$.ajax({
type: "POST",
url: "manage_add_student.php",
datatype: "json",
data: {dataJson: dataJson},
success: function(result) {
$("#showResultVarDump").html(result);
},
});
打开提交表单,我得到了发布的对象,在 php 文件中我对它进行了 json_decode
编辑,然后我使用 var_dump
显示了所有这些对象,但我不能通过它们的属性和索引访问它们,我得到很多错误,例如:
Warning: json_decode() expects parameter 1 to be string, array given in...
Trying to get property of non-object in...
Fatal error: Cannot use object of type stdClass as array in...
Notice: Undefined offset: 1 in...
我真正想做的是通过它们的属性和索引访问它们,这样我就可以将它们插入数据库,但我不知道如何操作。
谁能帮帮我,我真的不知道我现在在做什么,我应该做什么。
- 请不要讨厌,只是提供帮助,因为我在这方面真的很菜鸟。谢谢。
最佳答案
基于提供的代码片段。您应该能够通过这种方式访问服务器端的数据:
$data = json_decode($_POST['dataJson']);
for ($i=0; $i<count($data->idNumber); ++$i) {
// do something with the following info
$data->idNumber[$i];
$data->firstName[$i];
$data->middleName[$i];
$data->lastName[$i];
$data->courseYear[$i];
$data->section[$i];
}
关于php - 通过 AJAX 发布在 PHP 中回显 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798651/