Ir para conteúdo

Arquivado

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

alissong

Entrada de Produtos em carrinho

Recommended Posts

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

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

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

×

Informação importante

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