Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sacjamm

Atualizar Quantidade do carrinho

Recommended Posts

Olá amigos,

Estou com um desafio enorme aqui, fiz um carrinho de compras baseado em uma video aula na net, mais claro que eu personalizei códigos.

Está ocorrendo o seguinte, quando eu adiciono apenas um produto no carrinho, e mudo a quantidade e clico em atualizar, ele faz a atualização do carrinho de boa. Mais quando eu adiciono mais um produto, ou mais, ele não atualiza a quantidade de nenhum produto. Abaixo está meu código:

function addItem(idProduto,qtdProduto){
                $("table").on('click', '#aq', function (e) {
                    var id = idProduto;
                    var quantidadeItem = qtdProduto;
//                    var id = $(this).attr('data-idatualiza');
//                    var quantidadeItem = $('input[name="qtd"]').val();
//                      alert(id+'-'+quantidadeItem);
                    $.post('<?= INCLUDE_PATH ?>/carrinho/carrinho.php', {acao: 'add', id: id, qtd: quantidadeItem}, function (retorno) {
                        if (retorno == 'ok') {
                            getItens();
                            $('.escurecer').hide();
                            location.href = "<?= BASE; ?>/carrinho";
                        } else {
                            console.log(retorno);
                            //alert('Erro ao atualizar item do orçamento, tente novamente!');
                        }
                    }, "json");
                    return false;
                });
                }

function getCart(data) {
                    //Variaveis do topo
                    var carrinho = $("#cartAll");
                    var countCart = carrinho.find("#qtdItem");
                    //variaveis da pagina carrinho
                    var carrinhoPage = $("#cartPage");
                    var tbody = carrinhoPage.find("tbody");
                    var countCar = carrinhoPage.find("#qtdCar");
                    var totalCart = carrinho.find("#totalCart");
                    var quantity = $("#inputQuantidade");
                    var tr = '';

                    if (data.count > 0) {
                        $.each(data.Dados, function (i, val) {
                            
                            addItem(data.Dados[i].idProduto ,data.Dados[i].quantidade);
                            //console.log(i);
                            tr += '<tr style="color:#444444;">';
                            if (data.Dados[i].img < 0) {
                                tr += '<td style="width:160px;"><img src="http://fabricafantastica.com.br/uploads/' + data.Dados[i].img + '" class="img-responsive" alt="" width="150"></td>';
                            } else {
                                tr += '<td style="width:160px;"><img src="http://fabricafantastica.com.br/uploads/' + data.Dados[i].img + '" class="img-responsive" alt="" width="150"></td>';
                            }
                            tr += '<td><h4 style="color:#444444;"><a href="' + data.Dados[i].url + '">' + data.Dados[i].nome + '</a></h4></td>';
                            tr += '<td style="width:80px;"><center><div class="input-group input-group-sm"><input type="number" min="' + data.Dados[i].qtdminimo + '" max="' + data.Dados[i].qtdmaximo + '" style="width:70px;text-align:center;" name="qtd" class="form-control" value="' + data.Dados[i].quantidade + '"/><span id="btn" class="input-group-btn"><button type="submit" class="btn btn-success btn-flat" id="aq" data-idatualiza="' + data.Dados[i].idProduto + '"><i class="fa fa-refresh"></i></button></span></div></center> </td>';
                            tr += '<td style="width:80px;"><center><a href="javascript:;" class="btn btn-danger btn-medium btn-mini" id="removeItem" data-id="' + data.Dados[i].id + '"> <i class="fa fa-trash-o"></i></a></center> </td>';
                            tr += '</tr>';
                            quantity.val(data.Dados[i].quantidade);
                        });

                        if (data.count == 0) {
                            countCart.text('(0 item)');
                        } else if (data.count == 1) {
                            countCart.text('(1 item)');
                        } else {
                            countCart.text('(' + data.count + ' itens)');
                        }

                        if (data.count == 0) {
                            countCar.text('Meu Orçamento: Nenhum Item');
                        } else if (data.count == 1) {
                            countCar.text('Meu Orçamento: (1) Item');
                        } else {
                            countCar.text('Meu Orçamento: (' + data.count + ') Itens');
                        }
                        tbody.empty().append(tr);
                    } else {
                        countCart.text('(0 item)');
                        tbody.html('<tr><td colspan="4" style="color:#444444;">Seu carrinho de orçamento está vazio. </td></tr>');
                    }
                }

A primeira função eu faço o update da quantidade do produto, a segunda função faço uma lista de produtos com jquery em uma tabela, como podem ver. E passo um parametro dinamico no botao de atualizar a quantidade.

Obs. Editado agora: Ne verdade ele não está atualizando nem com um produto e nem com dois ou mais.

Fico no aguardo de alguém para solucionar meu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque não tenta fazer diretamente com PHP?

Você só iria precisar de uma tabela chamada carrinhos.

//clique aqui para adicionar ao carrinho...
//clicado
$this->con->prepare("insert into carrinho (user_owner, quantidade, id_produto, valor) values (?,?,?,?)");
//clique aqui para ver o carrinho..
//clicado
$this->con->prepare("SELECT * FROM carrinho WHERE user_owner = ?");
Para atualizar quantidade basta pegar o id do pedido que está no carrinho e efetuar um update na "quantidade"

O código vai inserir os pedidos, e depois vai listar todos eles na tela. Isso é apenas uma base, caso precise mande uma mensagem privada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom james

Porque não tenta fazer diretamente com PHP?
Você só iria precisar de uma tabela chamada carrinhos.

//clique aqui para adicionar ao carrinho...
//clicado
$this->con->prepare("insert into carrinho (user_owner, quantidade, id_produto, valor) values (?,?,?,?)");
//clique aqui para ver o carrinho..
//clicado
$this->con->prepare("SELECT * FROM carrinho WHERE user_owner = ?");
Para atualizar quantidade basta pegar o id do pedido que está no carrinho e efetuar um update na "quantidade"
O código vai inserir os pedidos, e depois vai listar todos eles na tela. Isso é apenas uma base, caso precise mande uma mensagem privada.

Bom james, eu sei como fazer apenas com php, e requisitar com jquery, só que eu queria aperfeiçoar um pouco meu conhecimento em jquery, e qualquer ajuda de vocês faria com que eu entendesse e estudasse mais o jquery. Mais se eu não conseguir essa solução irei ter que optar em fazer com php mesmo.

Vlw pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.