2015-09-26 104 views
1

我不知道我做錯了什麼,但是我有這種形式,管理員可以從多個字段插入學生。例如,管理員想要插入5名學生,每個學生的idNumber,firstName,middleName,lastName,courseYearsection。我將所有具有相同屬性的值分組,因爲我認爲我可以在php文件中輕鬆訪問它們,因爲它們具有相同的索引。通過AJAX發佈PHP中的回聲JSON對象

這是我的Ajax代碼,其中i循環中的值,並插入它們在陣列中通過訪問其類的指數:

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(); 
    } 

這其中I製備的那些陣列作爲一個對象和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 -ed它,我得到他們所有要顯示使用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... 

我真正想要做的是通過它們的屬性和索引訪問它們,這樣我就可以將它們插入到數據庫中,但我不知道如何。

有人可以幫助我我真的不知道我現在在做什麼,我該怎麼做。

  • 沒有討厭的請,但只是幫助,因爲我真的可以非常小事。謝謝。

回答

1

基於提供的代碼片段。你應該可以這樣訪問服務器端的數據:

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

是的,這對我有用。我認爲我在ajax部分做了錯誤的事情。謝謝。 – zangetsu