Используя Javascript, я создаю ассоциативный объект с именем basketItems. (это напоминает ассоциативный массив). Затем я добавляю к нему объекты 'item', которые содержат определенные спецификации элементов, как показано ниже:
// create main basketItems Object
var basketItems = new Object();
function createItem() {
var item = new Object();
item["number"] = number variable;
item["color"] = color variable;
item["engine"] = engine variable;
item["shape"] = shape variable;
item["seats"] = seats variable;
item["price"] = price variable;
var itemUnique = unique variable;
// Add Item into BasketItems Object
basketItems[itemUnique] = item;
}
Затем я отправляю basketItems на сервер, используя почту, и на стороне сервера мой код PHP:
<?php
$basketItems = $_POST['items'];
print $basketItems;
?>
Это дает мне полный объект basketItems и выводит его, как показано ниже:
{ 546523 = { seats = \"FOUR\"; shape = \"HATCHBACK\"; price = \"6500\"; engine = \"TWO LITRE\"; color = \"ORANGE\"; number = \"36408974\"; }; }
Мне нужно иметь возможность вызывать определенные части объекта basketItems, а не только полное содержимое. Я попробовал несколько попыток, используя приведенное ниже выражение 'foreach', но я всегда получаю неверный аргумент foreach :
<?php
$basketItems = $_POST['items'];
foreach($basketItems as $key => $item) {
print $item['shape'];
}
?>
Как я могу достичь вышеизложенного, чтобы я мог выбрать, скажем, только значение 'shape' для всех элементов в объекте basketItems?
Если бы кто-нибудь мог помочь мне в этом, я был бы очень признателен.
Заранее спасибо
--------------------- Быстрое обновление ------------------ -
Javascript все используется в мобильном приложении, встроенном в Titanium Appcelerator.
Я не публикую его с JSON, просто как стандартный объект. Сообщение отправляется, как показано ниже:
var xhr = Ti.Network.createHTTPClient();
xhr.open('POST', 'http://www.xxxxxx.com/xxxxxx.php');
xhr.onload = function () {webview.html = this.responseText;};
xhr.send({items:basketItems});