Ir para conteúdo

POWERED BY:

Arquivado

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

Estaleiro

[Resolvido] Como enviar dados através do serialize

Recommended Posts

Buenas pessoal, resolvido um problema aparece outro, como eu faço pra resgatar vários dados de um while em outra página, por exemplo, eu tenho uma lista de produtos vindo do mysql, e estou usando assim:

while($r = mysql_fecth_array($sql)){
//aqui entra todos os produtos da lista, e dentro disso tem um campo text do tipo input para qtde.
}
até aí blza, o que eu não tô conseguindo fazer é levar mais de um produto para outra página que seria a do carrinho

eu recebo os dados assim na página carrinho

 

if($_GET['acao'] == 'add'){
			$id_produto = $_POST["id_produto"];
                if(is_array($_POST['produto'])){
                   foreach($_POST['produto'] as $id_produto => $qtd){
                      $id_produto  = intval($id_produto);
                      $qtd = intval($qtd);
                      if(!isset($_SESSION['carrinho'][$id_produto])){
								$_SESSION['carrinho'][$id_produto] = $qtd;
					  }else{
                         unset($_SESSION['carrinho'][$id_produto]);
                      }
                   }
				   
                }
				echo "<META HTTP-EQUIV=REFRESH CONTENT='0; URL= ?pagina=pedido'>";
             }

Até passa um produto e tal, mais não é o produto que eu tô pegando, aparece sempre o primeiro produto da tabela de produtos e nada mais, se puderem me ajudar de novo, mais uma vez, serei grato...

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí pessoal, recorrendo a diversos foruns na net, consegui resolver uma parte do problema, a outra parte refere-se ao checkbox que não esta recebendo os dados da array, alguém saberia me dizer aonde eu errei, pois já fiz e re-fiz os códigos diversas vezes e nada acontece, abaixo esta o codigo

 

dentro da tag HEAD eu tenho o seguinte javascript

<script language="JavaScript">
<!--
   function enviar(opcao) {
      //OPÇÃO EXCLUIR SELECIONADA
	  if(opcao == 'E') {
	     document.forms[0].opc_excluir.value = 1;
		 document.forms[0].submit();
      }//FECHA IF
	  
	  //OPÇÃO ATUALIZAR SELECIONADA
	  if(opcao == 'A') {
	     document.forms[0].opc_atualizar.value = 1;
		 document.forms[0].submit();
      }//FECHA IF
	  
	  //OPÇÃO FINALIZAR SELECIONADA
	  if(opcao == 'F') {
	     document.forms[0].opc_finalizar.value = 1;
		 document.forms[0].action = "finalizar.php";
		 document.forms[0].submit();
      }//FECHA IF
	  
   }//FECHA FUNCTION
//-->
</script>

envio os arrays para verificação

<form name="frmCarrinho" method="post">
		<input type="hidden" name="opc_excluir">
		<input type="hidden" name="opc_atualizar">

<td align="center" valign="top"><label></label>
  <input name="check[]" type="checkbox" value="<? echo $indice; ?>">
</td>

<td colspan="8" align="right" valign="middle">
 <label>
   <input type="image" name="btnExcluir" src="excluir.gif" onClick="enviar('E');">  
   <input type="image" name="btnAtualiza" src="atualizar.gif" onClick="enviar('A');">
 </label>
</td>

O codigo php que faz a exclusão ou alteração do item

 

//RECEBE OS PRODUTOS CHECADOS PARA ATUALIZAÇÃO
			   $v_atualiza  =  $_POST[a_prod];
			   
			   //PEGA A CHAVE DO ARRAY
			   $chave  =  array_keys($v_atualiza);
			   
			   //EXIBE
			   for($i=0; $i<sizeof($chave); $i++) {
				  //PEGA O INDICE DO PRODUTO
				  $indice   =   $chave[$i];
				  
				  //ALTERA A QUANTIDADE DO PRODUTO SELECIONADO
				  $_SESSION['carrinho'][$indice][QTDE]   =  $v_atualiza[$indice][QTDE];
			   }//FECHA FOR
			}//FECHA IF


			//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
			elseif($_POST[opc_excluir]) {
			   
			   //RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
			   $excluir  =  $_POST[check];
			   
			   //EXIBE
			   for($i=0; $i<sizeof($excluir); $i++) {
				  //PEGA O INDICE DO PRODUTO
				  $indice   =   $excluir[$i];
				  //DESTRÓI A VARIÁVEL ESPECIFICADA
				  unset($_SESSION['carrinho'][$indice]);
			   }//FECHA FOR
			}//FECHA IF

Pow galera, eu sei que é meio chato ficar postando toda hora isso aí, mais dependo disso aí, pra fechar este projeto, alguém me dê uma luz!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça algo como

 

<?php
   foreach($_SESSION['carrinho'] as $produtos){
?>
   <input name="check[]" type="checkbox" value="<? echo $produtos; ?>">
<?php
}
?>

Porque o valor que o checkbox recebe está em um array, então ele tem que ser passado dentro de algum loop na onde é exibido o checkbox, senão ele exibira só um valor mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado por ter respondido João Vitor, mais eu já fiz isso na parte que eu recebo os dados vindos do post através do código abaixo:

 

//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
                        if($_POST[opc_excluir]) {
                           
                           //RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
                           $excluir  =  $_POST[check];
                           
                           //EXIBE
                           for($i=0; $i<sizeof($excluir); $i++) {
                                  //PEGA O INDICE DO PRODUTO
                                  $indice   =   $excluir[$i];
                                  //DESTRÓI A VARIÁVEL ESPECIFICADA
                                  unset($_SESSION['carrinho'][$indice]);
                           }//FECHA FOR
                        }//FECHA IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais você tem que deixar seu input type="checkbox" dentro do loop cara

do jeito que você deixou $indice dentro do for, ele se tornou um array com todos

agora se precisa criar outro loop na hora de exibir o input passando todos os valores do array $indice

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais você tem que deixar seu input type="checkbox" dentro do loop cara

do jeito que você deixou $indice dentro do for, ele se tornou um array com todos

agora se precisa criar outro loop na hora de exibir o input passando todos os valores do array $indice

 

Pois então brother eu tô armazenando o input type="checkbox" na variável $excluir, que eu jogo ela dentro do for

 

//RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
                           $excluir  =  $_POST[check];
                           
                           //EXIBE
                           for($i=0; $i<sizeof($excluir); $i++) {
                                  //PEGA O INDICE DO PRODUTO
                                  $indice   =   $excluir[$i];
                                  //DESTRÓI A VARIÁVEL ESPECIFICADA
                                  unset($_SESSION['carrinho'][$indice]);
                           }//FECHA FOR
                        }//FECHA IF

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara o seu problema é para excluir ??? ou para exibir os dados ?? eu to passando a solução porque acho que não exibe por isso

no for não achei nenhum erro, eu só usaria no lugar de sizeof um count.

 

Brother, meu problema tá em excluir e atualizar os dados, pra exibir os dados eu já consegui fazer, a minha dificuldade tá só em excluir e atualizar os dados que eu marco no checkbox, olha só fiz uma adaptação do carrinho deste artigo: http://imasters.com.br/artigo/2095?cn=2095&cc=44

tá dando tudo certo menos o checkbox!

Compartilhar este post


Link para o post
Compartilhar em outros sites

                for($i=0; $i<COUNT($_POST['check']); $i++) {
                   unset($_SESSION['carrinho'][$_POST['check'.$i]]);
                }

Blza brother, problema resolvido mais no meu caso o count não me deu retorno, só o SIZEOF mesmo, mais vlw pela mão aí.

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.