javascript объект в php с помощью jquery ajax
У меня есть массив или объект JavaScript, который я создаю так:arr[arr.length]=obj
где obj - это классическая строка в формате JSON.{"id":1}
Такarr
кажется массивом объектов JavaScript.
Я могу получить к нему доступ так:arr[1]
arr[2]
, Это может быть даже какalert(arr[1].id);
Если я это сделаю: alert (JSON.stringify (arr)); Я получаю следующее:
[{"id":"2305","col":"1"},{"id":"2308","col":"1"},{"id":"2307","col":"1"},{"id":"2306","col":"1"}]
Принимая во внимание, предупреждение (обр); Дает мне что-то вроде:
[object Object],[object Object],[object Object],[object Object],[object Object]
Теперь мне нужно передать его в PHP-скрипт, используя jQuery 'Метод AJAX. Но похоже, что он может получить только комбинированные строки, такие как:
{"id":"2305","col":"1"}
или же{"id":"2305","col":"1","id":"2305","col":"1"}
Но JSON.stringify успешно анализирует объект arr, и мой предыдущий пример строки, которая у меня есть, кажется допустимой строкой JSON. Как я могу перейти на PHP, если я действительно изменю весь формат структуры, чтобы быть похожим на последний образец?
UPD: я забыл упомянуть, что PHP 's POST массив равен нулю, если отправить '{}, {}, {}» скорее к ней{}» строка.
UPD: я переписал код сгенерированной строки. Теперь у меня есть такая строка:
{"2305":"1","2306":"1"}
Это работает, если я передаю его PHP напрямую, вот так:
$.post({url: '../getItems2Cart.php', data:{"2305":"1","2306":"1"} ,
success: function(response){alert(response);}
});
Если я отправлю это так, php вернет пустой массив POST:
$.post({url: '../getItems2Cart.php', data: JSON.stringify(str),.
success: function(response){alert(response);}
});
Чтобы получить ясность, alert теперь возвращает правильный JSON:
alert('json str to php '+JSON.stringify(str));
//json str to php {"2305":"1","2306":"1"}
Ааа .. да, и str - это объект javascript, а не строка.