Estaleiro 0 Denunciar post Postado Outubro 14, 2009 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 carrinhoeu 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
Estaleiro 0 Denunciar post Postado Outubro 16, 2009 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
João Vitor Ramos Tonolli 0 Denunciar post Postado Outubro 16, 2009 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
Estaleiro 0 Denunciar post Postado Outubro 16, 2009 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
João Vitor Ramos Tonolli 0 Denunciar post Postado Outubro 16, 2009 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
Estaleiro 0 Denunciar post Postado Outubro 16, 2009 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
João Vitor Ramos Tonolli 0 Denunciar post Postado Outubro 16, 2009 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. Compartilhar este post Link para o post Compartilhar em outros sites
Estaleiro 0 Denunciar post Postado Outubro 16, 2009 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
João Vitor Ramos Tonolli 0 Denunciar post Postado Outubro 16, 2009 for($i=0; $i<COUNT($_POST['check']); $i++) { unset($_SESSION['carrinho'][$_POST['check'.$i]]); } Compartilhar este post Link para o post Compartilhar em outros sites
Estaleiro 0 Denunciar post Postado Outubro 19, 2009 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