【问题标题】:Echo JSON object in PHP from posting through AJAX通过 AJAX 发布在 PHP 中回显 JSON 对象
【发布时间】:2015-09-26 15:13:11
【问题描述】:

我不知道我做错了什么,但我有这个表单,管理员可以在其中插入来自多个字段的学生。例如,管理员想要插入五个学生,每个学生有一个 idNumberfirstNamemiddleNamelastNamecourseYearsection。我将所有具有相同属性的值分组,因为我认为我可以在 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);
    },
});

打开提交表单,我得到发布的对象,在我json_decode-ed 的 php 文件中,我让所有它们都使用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...

我真正想做的是通过它们的属性和索引访问它们,这样我就可以将它们插入数据库,但我不知道如何。

谁能帮帮我,我真的不知道我现在在做什么,我应该做什么。

  • 请不要讨厌,但只是帮助,因为我真的很菜鸟。谢谢。

【问题讨论】:

    标签: php jquery mysql json ajax


    【解决方案1】:

    基于提供的代码 sn-ps。您应该可以通过这种方式在服务器端访问您的数据:

    $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];
    }
    

    【讨论】:

    • 是的,这对我有用。我以为我在 ajax 部分做错了什么。谢谢。
    猜你喜欢
    • 2023-03-17
    • 2011-03-18
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多