Как отправить общую стоимость товаров, если их несколько и они с разными суммами?

Приведу пример:
Есть n товаров с разными ценами, их можно прибавлять или отбавлять- i.piccy.info/i9/1dfb1e02f55763115122bd16383fcecf/1...

И есть общая стоимость всех товаров товаров, при прибавлении кол. товара, она соответственно увеличивается.
Как отправить ajax запрос, где будут данные тех товаров, которые есть в общей стоимости? То есть кол. товара определенного, его цена и его id.
Делал вариант с прибавлением input'ов, но на сервере я не могу знать какие id товаров пришли, а какие нет.
Есть варианты?
  • Вопрос задан
  • 2354 просмотра
Пригласить эксперта
Ответы на вопрос 2
@podvzbzdnul
Насколько я понял, вам нужно отправлять на сервер массив с товарами, где количество больше нуля. При изменении количества просто добавляйте товар (item) в корзину (cart)
var item = {}, cart = [];
item.id = id;
item.count = count;
cart.push(item);

Отправляйте cart и уже на сервере узнаете стоимость по id и так далее.
Ответ написан
Комментировать
foozzi
@foozzi Автор вопроса
еще вопрос, при такой конструкции, как мне передать cart в Main.sendZakaz?
$("#main-form").on('submit',(function(e){     
    e.preventDefault(); 
    Main.sendZakaz(this, cart);
    return false;
}));

$('.up').click(function(){
    id = $(this).attr('id');

    count_tovar = $('#count_tovar[data-id="'+id+'"]');                                                            
    $(count_tovar).text(parseInt($(count_tovar).text())+1);

    prices = $('.col_tot');
    prices_text = (parseInt($(prices).text())+parseInt($(this).attr('data-price')));                                                            
    $(prices).text(prices_text);                                                             
    var item = {}, cart = [];
                                                            
    item.id = id;
    item.count = (parseInt($(count_tovar).text()));
    item.total = prices_text;
    cart.push(item);      
                  
    return false;
})

$('.down').click(function(){
    id = $(this).attr('id');

    count_tovar = $('#count_tovar[data-id="'+id+'"]');                        

    if(parseInt($(count_tovar).text()) != 0){
        $(count_tovar).text(parseInt($(count_tovar).text())-1);

        prices = $('.col_tot');
        prices_text = (parseInt($(prices).text())-parseInt($(this).attr('data-price')));                                                            
        $(prices).text(prices_text);  

        var item = {}, cart = [];                                                           

        item.id = id;
        item.count = (parseInt($(count_tovar).text()));
        item.total = prices_text;
        cart.push(item);                         

        return false;
    }     
    return false;                                                       
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы