Ich habe Auswahllisten auf einer Seite und ich durchlaufe alle Auswahllisten. Die Werte sind "Standard", "Entschuldigt nicht vorhanden" und "Entschuldigt spät". Standard ist im Grunde "Select ...". Ich möchte das nicht an den Server weitergeben oder irgendwelche Bearbeitungen damit machen, da es sinnlos ist.Warum bekomme ich NULL-Werte in diesem Array?
Das ist meine jQuery:
attendSelect.each(function(k, v)
{
attendance = $(this).val();
if(attendance != "default")
{
console.log(attendance == "default");
students[k] =
{
lesson : $(this).attr('id'),
student_id : $(this).attr('name'),
attendance : attendance
};
}
});
Dies funktioniert, weil es die richtige Menge an Zeit jedes Mal, wenn ich es testen, in diesem Fall 3 mal falsch druckt. Allerdings ist das Problem auf der Serverseite (denke ich?). Wenn ich die Variable drucke, bekomme ich NULL, NULL für die Anzahl der Male, die Standard in jQuery gefunden wurde. Sicher, ich sollte nur ein Array der Größe 3 ohne NULLs bekommen.
Das ist das, was in PHP gedruckt:
$students = json_decode($_POST['students'], true);
var_dump($students);
array(12) {
[0]=>
NULL
[1]=>
NULL
[2]=>
NULL
[3]=>
array(3) {
["lesson"]=>
string(9) "lesson[7]"
["student_id"]=>
string(12) "student[241]"
["attendance"]=>
string(14) "Excused Absent"
}
[4]=>
array(3) {
["lesson"]=>
string(9) "lesson[7]"
["student_id"]=>
string(12) "student[270]"
["attendance"]=>
string(12) "Excused Late"
}
[5]=>
NULL
[6]=>
NULL
[7]=>
NULL
[8]=>
NULL
[9]=>
NULL
[10]=>
NULL
[11]=>
array(3) {
["lesson"]=>
string(9) "lesson[9]"
["student_id"]=>
string(12) "student[317]"
["attendance"]=>
string(14) "Excused Absent"
}
}
Das ist mein AJAX:
students = JSON.stringify(students)
if(attendSelect.length)//protect against submitting on past lessons
{
$.post('', { students : students, cid: cid }, function(response)
{
console.log(response);
});
}
Ich verstehe nicht, warum ich NULLs erhalten, wenn es nicht einmal die Aussage, wenn Eingabe nicht in jQuery.
Sortiert. Vielen Dank :) –