Problemas com carrinho de compras
Boa noite Pessoal, estou montando um carrinho de compras, ele esta funcionando parcialmente, acontece o seguinte, a página carrinho recebe os dados de um array, preenche os campos todo certo, o problema ocorre quando tem mais de 1 item no carrinho.
Quando eu clico em excluir item do carrinho ele pega o id corretamente e excluir o item correto normalmente.
Quando eu clico no botão de add ou del que são respectivamente adicionar mais quantidade ao mesmo item ou diminuir a quantidade, nestes 2 casos ele assume o id do 1 item, tanto quando tento adicionar quanto diminuir a quantidade de itens do carrinho.
Não estou entendendo porque isto esta acontecendo, pois, para excluir ele pega o id corretamente e a lógica que usei é a mesma para os 3 campos
<!-- Table -->
<div class="table-responsive">
<table class="table text-center carrinho-produtos">
<tr>
<th>Imagem</th>
<th>Produto</th>
<th>Referência</th>
<th>Quantidade</th>
<th>Preço unitário</th>
<th>Total</th>
<th>Remover</th>
</tr>
<?php/*
echo '<pre>';
var_dump($_SESSION['produto']);
echo '</pre>';*/
if(empty($_SESSION['produto'])):
echo '<tr><td colspan="7">Seu carrinho está vazio!<td></tr>';else:
if(isset($_POST['delete'])):
$idProduto = (int)$_POST['idProduto'];
$c = new Carrinho;
$c->setId($idProduto);
$c->excluirProduto();
header( 'Location: '.BASE.'/carrinho' );
endif;
if(isset($_POST['add'])):
$idProduto = (int)$_POST['idProduto'];
$c = new Carrinho;
$c->setId($idProduto);
$c->addProduto();
//header( 'Location: '.BASE.'/carrinho' );
echo '<pre>';
var_dump($c);
echo '</pre>';
endif;
if(isset($_POST['del'])):
$idProduto = (int)$_POST['idProduto'];
$c = new Carrinho;
$c->setId($idProduto);
$c->delProduto();
echo '<pre>';
var_dump($c);
echo '</pre>';
//header( 'Location: '.BASE.'/carrinho' );
endif;
$p = new arrayIterator($_SESSION['produto']);
while($p->valid()):
//echo $p->key();//pega indices do array
//echo '<br />';
//echo $p->current();//pega a quantidade de produtos de cada produto
$c = new Carrinho;
$c->setId($p->key());
$c->listarProdutos();
$produtos = $c->listarProdutos();
?>
<form method="POST" id="fContato" action="" enctype="multipart/form-data" oninput="calcTotal();">
<tr>
<td><img src="<?= BASE; ?>/tim.php?src=img/<?= $produtos->loja_imagem; ?>&w=100&h=100&zc=0&q=100"
class="img-produto" title="<?= $produtos->loja_produto; ?>" alt="<?= $produtos->loja_produto; ?>">
<td class="text-left"><?= $produtos->loja_produto; ?></td>
<td><?= $produtos->loja_ref; ?></td>
<td>
<a href="<?= $produtos->id_produto; ?>">
<label for="del" class="btn"><i class="fa fa-minus-circle" aria-hidden="true"></i></label>
<input id="del" name="del" type="submit" class="hidden"></a>
<input id="cQtd" class="carr-quant text-center" min="1" max="100" type="number" value="<?= $p->current(); ?>">
<a href="<?= $produtos->id_produto; ?>">
<label for="add" class="btn"><i class="fa fa-plus-circle" aria-hidden="true"></i></label>
<input id="add" name="add" type="submit" value="add" class="hidden"></a>
</td>
<td id="valor">R$ <?= number_format($produtos->loja_valor * $produtos->loja_qtd, 2, ',','.'); ?></td>
<td id="resultado">R$ <?= number_format(($produtos->loja_valor * $p->current()), 2, ',','.'); ?>
</td>
<input type="hidden" name="idProduto" id="idProduto" value="<?= $produtos->id_produto; ?>" />
<td><button type="submit" name="delete" class="btn btn-link"><i class="fa fa-times fa-2x remove" aria-hidden="true"></i></button></td>
</tr>
</form>
<?php
$p->next();
endwhile;
endif;
?>
</table>Discussão (2)
Carregando comentários...