Jump to content


Photo

Carrinho De Compras, Tamanho De Produtos


  • Faça o login para participar
1 reply to this topic

#1 PeixotU

PeixotU

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Masculino
  • Localidade:goiania

Posted 28/08/2011, 17:15

iai galera tranquilo?
Estou com um probleminha aqui qe está me tirando os cabelos, é o seguinte, meu cliente vende sandálias, então a pessoa tem que escolher o tamanho da sandália que ela quer comprar. Até ai tudo bem está funcionando blz.

Só que se a pessoa colocar 5 itens no carrinho o certo seria cada um ter o tamanho escolhido, só que no meu caso aqui não está acontecendo isso não, todos os produtos do carrinho ficam com o mesmo tamanho, no caso do último item adc no carrinho.

esta funcionando desse jeito aqui:

aqui o form para a pessoa escolher o tamanho e enviar pro carrinho:
<form action="carrinho&acao=add&id=<?php echo $dados['id'] ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
       <?php
              for( $i =  $dados['detamanho']  ; $i <= $dados['atamanho'] ; ++ $i )
                     printf( '%d<input type="radio" name="numero" value="%d"> &nbsp;' , $i , $i );
					 
			   //esse $tamanho está puxando da página anterior para mostrar o nº escolhido.
			   		$tamanho = isset($_POST['numero']) ? $_POST['numero'] : false;


       ?>

       <input type="submit" value="Colocar na Sacola" name="submitForm" />
</form>


e aqui o carrinho de compras:
<title>Carrinho de Compras</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<?php    
			   //esse $tamanho está puxando da página anterior para mostrar o nº escolhido.
			   		$tamanho = isset($_POST['numero']) ? $_POST['numero'] : false;


       if( isset( $tamanho ) == 0){
		   echo '<script>alert("Escolha um tamanho")</script>';
		   echo '<script>history.go(-1);</script>';
	
	   }else
                       echo 'Número escolhido: ' , $tamanho ;
?>

<?php 
      session_start();  
	  
	      
      if(!isset($_SESSION['carrinho'])){
         $_SESSION['carrinho'] = array();
      }
      
      //adiciona produto
      
      if(isset($_GET['acao'])){
         
         //ADICIONAR CARRINHO
         if($_GET['acao'] == 'add'){
            $id = intval($_GET['id']);
            if(!isset($_SESSION['carrinho'][$id])){
               $_SESSION['carrinho'][$id] = 1;
            }else{
               $_SESSION['carrinho'][$id] += 1;
            }
         }
         
         //REMOVER CARRINHO
         if($_GET['acao'] == 'del'){
            $id = intval($_GET['id']);
            if(isset($_SESSION['carrinho'][$id])){
               unset($_SESSION['carrinho'][$id]);
            }
         }
		 
         //ALTERAR QUANTIDADE
		 
		 //Se existir $_POST['prod'] então começa..
         if( isset( $_POST['prod'] ) )
		 
         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['carrinho'][$id] = $qtd;
                  }else{
                     unset($_SESSION['carrinho'][$id]);
                  }
               }
            }
         }
      
      }
      
?>


<?php
        $i = 1;
        if(!isset($_SESSION))
{
session_start();
}  
        
        if(!isset($_SESSION['carrinho'])){
                $_SESSION['carrinho'] = array();
        }
                        if(count($_SESSION['carrinho']) == 0){
                                 'Carrinho vazio.';
                        }else{
                                require("conexao.php");
                                $peso	= 0;
                                $total	= 0;
								$form = '';//iniciando a variavel
                                foreach($_SESSION['carrinho'] as $id => $qtd){
                                $sql   	= "SELECT *  FROM novidades WHERE id= '$id'";
                                $qr     = mysql_query($sql) or die(mysql_error());
                                $ln     = mysql_fetch_assoc($qr);
                                
                                $nome  	= $ln['nome'];
                                $preco 	= $ln['preco'];
                                $sub   	= number_format($ln['preco'] * $qtd, 2, ',', '.');
                                $opreco = $ln['preco'];
                                $total 	+= $ln['preco'] * $qtd;
								$peso 	= $ln['peso'];
								$frete  = 0;
                                $aid	=  $ln['id'];
                                
                                
 
                $form .= '
<input type="hidden" name="item_id_' 	. $i . '" value="'.$aid.'">
<input type="hidden" name="item_descr_' . $i . '" value="'.$nome.'">
<input type="hidden" name="item_quant_' . $i . '" value="'.$qtd.'">
<input type="hidden" name="item_valor_' . $i . '" value="'.$opreco.'">
<input type="hidden" name="item_frete_' . $i . '" value="'.$frete.'">
<input type="hidden" name="item_peso_' 	. $i . '" value="'.$peso.'">';
$i++;
                                }
														
                                $total = number_format($total, 2, ',', '.');                                
                        }
						?>
                        




<table>
    <caption>Carrinho de Compras</caption>
    <thead>
          <tr>
            <th width="244" bgcolor="#0099FF">Produto</th>
            <th width="79" bgcolor="#0099FF">Quantidade</th>
            <th width="200" bgcolor="#0099FF">Valor Unit&aacute;rio</th>
            <th width="100" bgcolor="#0099FF">SubTotal</th>
            <th width="64" bgcolor="#0099FF">Remover</th>
      </tr>
    </thead>
            <form action="carrinho&acao=add&id=<?php echo $ln['id'] ?>&acao=up" method="post">
    <tfoot>
           <tr>
            <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td>
            <tr>
    </tfoot>
      
    <tbody> 
    

    
    
               <?php 


					
					
                     if(count($_SESSION['carrinho']) == 0){
                        echo '<tr><td colspan="5">Carrinho vazio.</td></tr>';
                     }else{
                        require("conexao.php");
                                                               $total = 0;
                        foreach($_SESSION['carrinho'] as $id => $qtd){
                              $sql   = "SELECT *  FROM novidades WHERE id= '$id'";
                              $qr    = mysql_query($sql) or die(mysql_error());
                              $ln    = mysql_fetch_assoc($qr);
                              
                              $nome  = $ln['nome'];
                              $preco = $ln['preco'];
                              $sub   = number_format($ln['preco'] * $qtd, 2, ',', '.');
                              
                              $total += $ln['preco'] * $qtd; 
                           
                           echo '<tr align="center">        
						   <td>'.$nome.' '.$_POST['numero'].'</td>
						   <td><input type="hidden" name="prod['.$id.']" value="'.$tamanho.'" />
							   <input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td>
						   <td>R$ '.$preco.'</td>
						   <td>R$ '.$sub.'</td>
						   <td><a href="carrinho&acao=add&id='.$ln['id'].'&acao=del&id='.$id.'">Remove</a></td>
						 </tr>';
                        }
                           $total = number_format($total, 2, ',', '.');
                           echo '<tr align="right" bgcolor="#CCCCCC">
                                    <td colspan="4">Total</td>
                                    <td width="100">R$ '.$total.'</td>
                              </tr>';
                     }
               ?>
   
     </tbody>

        </form>
</table>




Se alguém souber e puder me ajudar fico agradecido.
Abçs.

#2 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 29/08/2011, 17:41

A pessoa escolhe individualmente cada tamanho?

var_dump() nas variaveis de envio, nas de recebimento e na logica, verifica cada saida na tela e veja onde vc envia errado/onde recebe errado, verifica tb todo o html montado... faz um teste de mesa tb!

Desculpa eu não vi o script, muito longo, muito confuso ... ehhehehe
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq