Ir para conteúdo

POWERED BY:

Arquivado

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

marcossantana10

Problema com carrinho de compra

Recommended Posts

Meu sistema de carrinho de compra está quase 100%. Adiciono produtos de um por um, removo, adiciono uma quantidade específica de determinado produto, enfim...

 

O unico problema é que quando eu adiciono o produto no carrinho e clico para finalizar a compra, ele sempre incrementa mais um na quantidade do produto. Acredito eu que esse problema é pq envio um formulario pra mesma pagina (obs nao consegui mandar todas as informacoes necessarias para outra pagina). Acho que uma solucao possivel e fazer com que a pagina nao atualize ao enviar esse formulario, porem nao sei como fazer isso. Vou postar o codigo compelto da minha pagina que faz essa venda:

 

 

<?php session_start() ?>
<?php
$conexao = mysql_connect("localhost", "root", "");
mysql_select_db("---");
if(isset($_SESSION['venda'])){
}else{
$_SESSION['venda'] = array();
}
//ADICIONAR ITEM
if(@$_GET['acao'] == 'add'){
$id = intval($_GET['id']);
if(!isset($_SESSION['venda'][$id])){
$_SESSION['venda'][$id] = 1;
}else{
$_SESSION['venda'][$id] += 1;
}
}
//DELETAR ITEM
if(@$_GET['acao'] == 'del'){
$id = $_GET['id'];
unset($_SESSION['venda'][$id]);
}
//ALTERAR QUANTIDADE
if(@$_GET['acao'] == 'up'){
//$id = $_GET['id'];
if(is_array(@$_POST['prod'])){
foreach($_POST['prod'] as $id => $quantidade){
$id = intval($id);
$quantidade = intval($quantidade);
if(!empty($quantidade) || $quantidade<> 0){
$_SESSION['venda'][$id] = $quantidade;
}else{
unset($_SESSION['venda'][$id]);
}
}
}
}
?>
<?php
require_once('app/Func.php');
include('header.php');
$result = read("produtos");
$cliente = read("clientes");
$vendedor = read("vendedores");
?>
<!--CALCULAR QUANTIDADE * PREÇO -->
<script language="javascript">
function calcula(){
var quantidade = document.getElementById("quantidade").value;
var valor_unitario = document.getElementById("valor_unitario").value;
var valor_total = document.getElementById("valor_total").value = quantidade * valor_unitario;
}
</script>
<div id="conteudo">
<h3>Vendas</h3>
<form action="?acao=up" method="post">
<table border="0" class="table table-striped">
<tr>
<td colspan="5"><center><strong>MEU CARRINHO</strong></center></td>
</tr>
<tr>
<td><strong>Produto</strong></td>
<td><center><strong>Quantidade</strong></center></td>
<td><center><strong>Preço</strong></center></td>
<td><center><strong>SubTotal</strong></center></td>
<td><center><strong>#</strong></center></td>
</tr>
<?php
foreach($_SESSION['venda'] as $prod => $quantidade):
$queryProdutos = read("produtos", "id = '$prod'");
$queryProdutos = $queryProdutos->fetch_assoc();?>
<tr>
<td><?php echo $queryProdutos['nome'];?></td>
<td><center><input style="width:50px;" type="text" name="prod[<?php echo $id?>]" value="<?php echo $quantidade ?>" /></center></td>
<td><center>R$ <?php echo $queryProdutos['preco'];?></center></td>
<td><center>R$ <?php echo $queryProdutos['preco'] * $quantidade; ?></center></td>
<td><center><a href="?acao=del&id=<?php echo $queryProdutos['id']; ?>"><img src="src/img/delete.png" title="Excluir" /></a></center></td>
</tr>
<?php
@$totalCompra += $queryProdutos['preco'] * $quantidade;
endforeach;
echo '<tr>';
echo '<td colspan="5" align="right"><strong>TOTAL DA COMPRA: R$ '.number_format(@$totalCompra, 2,",",".").'</strong></td>';
echo '</tr>';
?>
<tr>
<td colspan="5" align="right"><input type="submit" class="btn btn-sm btn-primary" value="Atualizar Carrinho" /></strong></td>
</tr>
</table>
</form>
<?php // realizar venda
if(isset($_POST['enviar'])){
$id_cliente = $_POST['id_cliente'];
$id_vendedor = $_POST['id_vendedor'];
$data_venda = date("Y-m-d");
$inserirVenda = @insert("venda", "valor, id_cliente, id_vendedor, data_venda", "$totalCompra, $id_cliente, $id_vendedor, $data_venda");
$sqlVenda = mysql_query ("SELECT MAX(id) FROM venda");
$idVenda = mysql_result ($sqlVenda,0);
foreach($_SESSION['venda'] as $produtosInseridos => $qtd): //esse 1 que ta ai é a quantidade, mudar para parametro
$inserirItens = insert("item_venda", "id_venda, id_produto", "{$idVenda}, {$produtosInseridos}");
endforeach;
if($inserirVenda){ // se inserir a venda - significando que tem itens no carrinho
echo "<script>alert('Venda concluida com sucesso');</script>";
}
if (!$inserirVenda){ // caso contrario
echo "<script>alert('Venda nao realizada. Verifique seu pedido.');</script>";
}
echo "<script>document.location = 'vendas.php'</script>";
session_destroy();
}
?>
<?php
if (isset($_POST['cancelar'])){
session_destroy();
echo "<script>document.location = 'vendas.php'</script>";
}
?>
<form method="post" enctype="multipart/form-data" action="">
<table border="0" class="table">
<tr>
<td>Cliente: <br>
<select name="id_cliente">
<?php
while($clientes = $cliente->fetch_object()):
echo "<option value=\"$clientes->id\">" .$clientes->nome. "</option>";
endwhile;
?>
</select>
</td>
<td width="211">Vendedor:<br>
<select name="id_vendedor">
<?php
while($vendedores = $vendedor->fetch_object()):
//não cadastrar cidade na categoria Salvador e Feira de Santana
echo "<option value=\"$vendedores->id\">" .$vendedores->nome. "</option>";
endwhile;
?>
</select>
</td>
<td width="491" colspan="3">Data:<br><input type="date" name="data_venda"></td>
</tr>
<tr>
<td width="200"></td>
<td width="200"></td> <td width="200"></td>
<td><input style="float:right;" type="submit" name="cancelar" value="Cancelar Pedido" class="btn btn-sm btn-danger" onClick="return cancelar_pedido();" /></td>
<td><input style="float:right;" type="submit" name="enviar" value="Finalizar Pedido" class="btn btn-sm btn-success" /></td>
</tr>
</table>
</form>
<br />
<?php if($result->num_rows > 0): ?>
<div style="float:right;">
<form name="form_pesquisa" id="form_pesquisa" method="post" action="">
<div class="input-prepend">
<span class="add-on"><i class="icon-search"></i></span>
<input type="text" name="pesquisaCliente" id="pesquisaCliente" value="" tabindex="1" placeholder="Digite o nome do produto" />
</div>
</form>
</div>
<br /><br />
<center>
<br />
<div id="contentLoading">
<div id="loading"></div>
</div>
<section class="jumbotron">
<div id="MostraPesq"></div>
</section>
</center>
<br /><br />
<?php
endif;
if ($result->num_rows == 0):?>
<div class="alert alert-warning" role="alert"><center><strong>Nenhum produto cadastrado.</strong></center></div>
<?php endif; ?>
</table>
</div>

 

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.