alissong 1 Denunciar post Postado Setembro 7, 2016 Pessoal tenho um formulário que busca o código do produto para inclusão no carrinho de itens. Veja o código abaixo: <?php require ("verifica.php"); ?> <HTML> <HEAD> <TITLE>Formulario de Entrada de Itens</TITLE> <script type="text/javascript" src="java/ajaxentrada.js"></script> <script language=javascript> function valida_dados () { if (busca_prod.q_entrada.value <= 0) { alert ("Por favor digite a quantidade maior que zero !"); busca_prod.q_vendida.focus(); return false; } return true; } </script> </HEAD> <BODY> <br> <form name="busca_prod" action="?cad=entradas_p2&mov_entradas&acao=add" method="POST" onsubmit="return valida_dados(this)"> <fieldset> <legend>BUSCA DO PRODUTO</legend> <table cellspacing="1" width="100%"> <tr> <td>Busca:</td> <td><input name="busca" type="text" id="busca" size="10" onkeyUp="buscarProduto(this.value)"></td> <td><input name="cod_prod" type="hidden" id="cod_prod" size="10"></td> <td>Nome do Produto</td> <td><input name="desc_prod" type="text" id="desc_prod" size="60" readonly="true"></td> <td>Estoque</td> <td><input name="esto_prod" type="text" id="esto_prod" size="10" readonly="true"</td> <td>Preco Custo</td> <td><input name="preco_prod" type="text" id="preco_prod" size="10" value="0"></td> <td>Quantidade</td> <td><input name="q_entrada" type="text" id="q_entrada" size="10" value="0"></td> <td></td> <td><input type="submit" name="acao" value="Incluir"></td> </tr> </table> </fieldset> </form> <BR> <div> <?php // Chama o carrinho de itens include "mov_entradas.php"; ?> </div> </BODY> </HTML> Que chama esse código mov_entradas.php. Segue o código abaixo: <?php require ("verifica.php"); if(!isset($_SESSION['mov_entradas'])){ $_SESSION['mov_entradas'] = array(); } //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = $_POST['busca']; $id = intval($_POST['busca']); if(!isset($_SESSION['mov_entradas'][$id])){ $qtd = $_POST['q_entrada']; $_SESSION['mov_entradas'][$id] = $qtd; }else{ $qtd = $_POST['q_entrada']; $_SESSION['mov_entradas'][$id] += $qtd; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['mov_entradas'][$id])){ unset($_SESSION['mov_entradas'][$id]); } } //ALTERAR QUANTIDADE if(count($_SESSION['mov_entradas']) == 0){ }else{ if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['mov_entradas'][$id] = $qtd; }else{ unset($_SESSION['mov_entradas'][$id]); } } } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Itens dos Produtos</title> </head> <body> <br> <!-- DADOS DOS ITENS DE PRODUTO--> <fieldset> <legend>INCLUSÃO DE ITENS NO ESTOQUE</legend> <table cellspacing="1"> <thead> <tr> <th width="400">Produto</th> <th width="79">Quantidade</th> <th width="89">Preço</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> </thead> <form action="?cad=entradas_p2&mov_entradas&acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Item" /></td> <td colspan="5"><a href="?cad=exibir_entradas">Gravar Dados</a></td> </tr> </tfoot> <tbody> <?php if(count($_SESSION['mov_entradas']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require("conexao/bdinc.php"); $total = 0; foreach($_SESSION['mov_entradas'] as $id => $qtd){ $sql = "SELECT * FROM tabela_produto WHERE cod_produto= '$id'"; $qr = mysqli_query($con,$sql); $ln = mysqli_fetch_assoc($qr); $nome = $ln['descricao']; $preco = $_POST['preco_prod']; $sub = number_format(($preco * $qtd), 2, ',', '.'); $total += $preco * $qtd; echo '<tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td align ="right">R$ '.$preco.'</td> <td align ="right">R$ '.$sub.'</td> <td align ="right"><a href="?cad=entradas_p2&mov_entradas&acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </fieldset> </body> </html> O código exibe três erros: 1 - Quando o usuário digitar aqui <td><input name="preco_prod" type="text" id="preco_prod" size="10" value="0"></td> o carrinho exibe o mesmo valor para todos os itens; 2 - Quando o usuário clica em remover exibe esse mensagem: Notice: Undefined index: preco_prod in C:\Apache24\htdocs\estoque\mov_entradas.php on line 97; 3 - Quando o usuário clica em atualiza Item exibe esse mensagem: Notice: Undefined index: preco_prod in C:\Apache24\htdocs\estoque\mov_entradas.php on line 97 e os itens fica tudo com zero. Portanto, como faço para acerta essas parte do código para reconhecer o valor digitado pelo usuario no input preco_prod //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['mov_entradas'][$id])){ unset($_SESSION['mov_entradas'][$id]); } } //ALTERAR QUANTIDADE if(count($_SESSION['mov_entradas']) == 0){ }else{ if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['mov_entradas'][$id] = $qtd; }else{ unset($_SESSION['mov_entradas'][$id]); } } } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 8, 2016 Utilize um ternario, se não for enviado um post seta como null, ou um valor que esteja em uma sessão por exemplo. $preco = isset( $_POST['preco_prod'] ) ? $_POST['preco_prod'] : null; Só não entendi porque pegar o preço por post! :blink: Compartilhar este post Link para o post Compartilhar em outros sites
alissong 1 Denunciar post Postado Setembro 8, 2016 Caro, Williams Duarte, Estou preciso incluir o preço do produto na session por codigo digitado pelo input busa. Veja codigo abaixo: //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = $_POST['busca']; $id = intval($_POST['busca']); $qtd = isset($_POST['q_entrada'])? $_POST['q_entrada']: null; if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = $qtd; }else{ $_SESSION['carrinho'][$id] += $qtd; } } Veja como estão gravando na session[carrinho]: carrinho|a:2:{i:1;s:1:"1";i:1500;s:1:"3";} Onde: i:1 - codigo produto e "1" - quantidade digitada no input q_entrada Sabe como fazer esse inclusão na session da varia preco por codigo digitado no input preco_prod? Compartilhar este post Link para o post Compartilhar em outros sites