Как я могу реализовать корзину покупок в Ajax, используя jQuery? - PullRequest
4 голосов
/ 06 марта 2009

Я разрабатываю корзину для покупок. Каждый Product имеет Price и SubCategory.

Продукт:

ID Price    Product No ProductName
1  250.5$   esp1       Electronic Machine
2  500.0$   esp2       Scanner

Пользователь может выбрать продукт, выбрав любой из указанных выше Product с. Существует также CommonProduct, связанный с каждым Product.

CommonProduct:

Common_id   Price  Name
cs1         1.2$   Addional_Item1
cs2         5.0$   Additional_Item2

После выбора корзина покупок будет выглядеть так:

 Qty  Name                 Price
 1    Electronic Machine   256.7$
      Additional_item1
      Additional_item2
 1    Scanner             505.0$
       Additional_item2

Мне нужны идеи для реализации вышеуказанного процесса. Мне очень сложно интегрировать Product с Common Product.

Есть ли хороший способ сделать это с помощью Ajax?

Ответы [ 4 ]

2 голосов
/ 06 апреля 2009

Основываясь на том, что сказал Грег , вы можете создать простой объект JavaScript, который будет выглядеть примерно так ...

Cart = function(){    
    this.add = function( productid ){
        //jQuery Ajax method via PUT
    }
    this.remove = function( id ){
        //jQuery Ajax method via DELETE
    }
}

Этот CRUD объект будет интерфейсом JavaScript к вашей серверной корзине, который может / должен реализовать RESTful интерфейс.

Что касается отображения общего продукта, на сервере, возвращающем ответ XML, который содержит общие продукты. Этот XML-ответ для добавления Электронной машины может выглядеть примерно так:

<root>
   <product price="250.0">Electronic Machine</product>
   <commonproducts>
       <commonproduct price="1.2">additional_item 1</commonproduct>
       <commonproduct price="5.0">additional_item 2</commonproduct>
   </commonproducts>
</root>

Вариант использования: купить Sanner

Cart = new Cart();
//Do Ajax call
xmlResponse = Cart.add(1);

//Parse XML response and get an array of products
commonProducts = $(xmlResponse).find('commonProducts');

//Iterate over the array
$().each( commonProducts, function(v,i){
    //Format them as you please
})

Альтернатива состоит в том, чтобы разделить это на два метода и предоставить другой интерфейс для запросов, если продукт имеет общие продукты, и просто возвращать ответ об успешном или неудачном выполнении методов CRUD.

Надеюсь, это было полезно и имело смысл!

1 голос
/ 29 марта 2009

Так же, как очень общий способ сделать это:

Создание веб-сервисов для взаимодействия. Используйте JQuery для взаимодействия с веб-сервисами. Будьте осторожны, чтобы требовать некоторой синхронности с методами. Например, вы не можете обновить количество, если товара нет в корзине, или можете увеличить количество после размещения заказа.

0 голосов
/ 07 апреля 2009

Можно, но лучший вопрос здесь, не так ли?

В 2007 году эксперт по юзабилити Якоб Нейлсен изучил тележки AJAX и обнаружил, что пользователи в основном находят, что они сбивают с толку .

Просто мысль.

0 голосов
/ 30 марта 2009

Вы должны создать таблицу базы данных для хранения товаров в корзине покупок:

CartItem id (первичный ключ), customer_id, product_id, количество

И еще одна таблица для хранения общих продуктов для каждого товара в корзине:

CartCommonItem cart_item_id (первичный ключ), common_id (первичный ключ)

И затем создайте скрипт, который генерирует JSON , XML или даже HTML для вашего jQuery Ajax запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...