var innerArray =[];
Это массив.
Массивы предназначены для хранения упорядоченного списка данных с числовыми индексами.
Когда JSON.stringify
сериализует массив, он будет только смотреть на числовые индексы.
"StudentId"
и т. д. не являются числами.
Если вы хотите использовать именованные свойства, тогда массив неправильный инструмент.
Вместо этого используйте объект.
var innerArray = {};
… и измените имя переменной!
Вы можете упростить свой код, назначив данные вобъектный литерал вместо того, чтобы следовать за ним с кучей отдельных назначений.
var innerArray = {
StudentId: actualId,
RouteId: routeId,
StopId: stopId,
VehicleId: vehicleId,
StartDate: startDate
};
Обратите внимание, что PHP имеет собственный синтаксис для выражения сложных структур данных в запросе POST.
Если вы поместите объект непосредственно в arrayOfStudentsInfo
, тогда jQuery будет сериализовать его в формате, совместимом с этим, PHP автоматически расшифрует его, и вы можете пропустить шаг ручного декодирования JSON в вашем PHP.