1
Good morning to everyone, I’m a beginner in php and I’m setting up a virtual store here in my stage, well it’s next, I can already create the session with the cart and delete it without problems, I’m not able to change the amount that the user informed and he update the cart, follows below the code I use to create the cart
if (isset($_SESSION['carrinho'])){
$_SESSION['carrinho'][base64_decode($_GET['id'])] = $_POST['qtde'];
}else{
$_SESSION['carrinho'] = array();
$_SESSION['carrinho'][base64_decode($_GET['id'])] = $_POST['qtde'];
}
Below is the code of the cart page, I don’t know which way to go
<?php
include_once './cabecalho.php';
//FAZER BACALHAU PARA MONTAR UMA TABELA COM OS ITENS E TER AS SEGUINTES OPÇÕES:
// =>ALTERAR QUANTIDADE;
// =>EXCLUIR PRODUTO - OK
// TER UM CAMPO PARA FINALIZAR O PEDIDO
// MONTAR GRID COM OS PRODUTOS - OK
$wLista='';
$wCont=1;
foreach ($_SESSION['carrinho'] as $produto_id => $qtde) {
//AQUI FAZER BACHALHAU PARA PEGAR OS PRODUTOS DO BANCO
$objProduto = new Produtos();
$objProduto->id=$produto_id;
$produto = $objProduto->SelectUm();
$wLista.='<tr>
<td>'.$wCont.'</td>
<td><input type="hidden" name="produto_id[]" value="'.$produto_id.'">'.$produto->nome.'</td>
<td><input type="text" value="'.$qtde.'" name="qtde[]" id="qtde"></td>
<td>
<a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Atualizar </a>
<a class="btn btn-danger btn-xs" name="excluir" href="carrinho.php?excluir='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Excluir </a>
</td>
</tr>';
$wCont++;
}
unset($produto);
if ($_GET){
if (isset($_GET['excluir'])){
$id = intval(base64_decode($_GET['excluir']));
if(isset($_SESSION['carrinho'][$id])){
unset($_SESSION['carrinho'][$id]);
header("Location: carrinho.php");
exit();
}
}
if (isset($_GET['alterar'])){
//PERCORRER OS ITENS DA VARIAVEL SESSION['carrinho']
//DEPOIS QUE ACHAR O ITEM, ALTERAR A QTDE NA SESSION
//E RECARREGAR PÁGINA
$id = intval(base64_decode($_GET['alterar']));
foreach ($_SESSION['carrinho'] as $produto_id =>$qtde){
if ($produto_id===$id){
$qtde = $_GET['qtde[]'];
echo '<script>alert("encontrei !!!!!")</script>';
}
}
}
}
if ($_POST){
$wLista='';
foreach ($_SESSION['carrinho'] as $produto_id => $qtde) {
//AQUI FAZER BACHALHAU PARA PEGAR OS PRODUTOS DO BANCO
$objProduto = new Produtos();
$objProduto->id=$produto_id;
$produto = $objProduto->SelectUm();
$wLista.='<tr>
<td>'.$wCont.'</td>
<td><input type="hidden" name="produto_id[]" value="'.$produto_id.'">'.$produto->nome.'</td>
<td><input type="text" value="'.$qtde.'" name="qtde[]" id="qtde"></td>
<td>
<a class="btn btn-primary btn-xs" name="alterar" href="carrinho.php?alterar='.base64_encode($produto_id).'?qtde="><i class="fa fa-edit"></i> Atualizar </a>
<a class="btn btn-danger btn-xs" name="excluir" href="carrinho.php?excluir='.base64_encode($produto_id).'"><i class="fa fa-edit"></i> Excluir </a>
</td>
</tr>';
$wCont++;
}
unset($produto);
}
?>
<form role="form" action="finalizaCarrinho.php" method="post" >
<div class="section">
<div class="container">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<table class="table table-bordered table-condensed table-striped">
<thead>
<tr>
<th>Nro Item</th>
<th>Produto</th>
<th>Qtde</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
<?php echo $wLista;?>
</tbody>
</table>
</div>
<div class="col-md-1"></div>
</div>
<div class="row text-right">
<div class="col-md-12">
<input type="submit" value="Finalizar Pedido" class="btn btn-primary">
<a href="vitrine.php" class="btn btn-primary">Continuar comprando</a>
</div>
</div>
</div>
</div>
</form>
<?php
include_once './rodape.php';?>
I can’t get him to update the session with the Qtde that the user informs it in the input, I’m grateful for the help of all.
In the case is not post, because the
GET
is embedded in the URL<a href=''></a>
– Inkeliz
And it’s not true if I make one
<form method="POST" action="meu.php?a=10">
the$_GET['a']
will return 10, regardless of the method. I even imagine that you wanted to be specific in the context of the question, but it is good not to leave room for mistakes.– Bacco