Приношу извинения, если это кажется очевидным, но я потерялся в этом на несколько часов.
Я пытаюсь создать объект javascript и передать его на страницу PHP, используя JQuery s. ajax.
Объект JS выглядит так:
let transactions = {};
let counter = 0;
($.each loop) {
transactions[counter] = {
"code": code,
"agency_number": agency_number,
"agency_code": agency_code
};
counter++;
}
Затем мне нужно добавить его вместе с другим полем в массив JSON
let formData = [{}];
formData.push({name: 'page', value: aPage});
formData.push({name: "transactions", value: JSON.stringify(transactions)});
Вызов AJAX, например:
let ajax_call=$.ajax({
datatype: "json",
method: "POST",
url: "theURL",
data: formData,
timeout: 15000,
async: true
});
ajax_call.done(function( data, textStatus, jqXHR ) {
... blah ...
, перенос транзакций в JSON .stringify, похоже, не работает. В конце PHP значение POST для транзакции выглядит так:
"{0:{CODE:300,AGENCY_NUMBER:20,AGENCY_CODE:50}}"
Без тиков, что не позволяет мне использовать json_decode. Он выводит «синтаксическую ошибку», как и ожидалось.
передавая ее как транзакции, без JSON .stringify дает результат:
formData.push({name: "transactions", value: transactions});
=
"[OBJECT OBJECT]"
, который является строковым представлением этого, а не реальный объект, с которым нужно работать.
Я ничего не делаю со значениями POST до этого момента. Вот как их получает страница PHP.
Любая помощь будет принята с благодарностью.
Спасибо!
Изменить - на самом деле ничего плохого с код здесь. Я ограничивал кавычки, а также другие специальные символы, от попадания на веб-сервер в IIS. Вот почему это происходило без них. Все хорошо, я просто тупой.
В остальном спасибо всем за помощь.