formigoni 0 Denunciar post Postado Julho 9, 2009 Olá, boa tarde pessoal do fórum. Estou fazendo um site de orçamento e me deparei com um problema. Ao logar no site o usuário escolhe um cliente que está relacionado a ele, por um POST eu pego o id do cliente e faço isso na minha página onde tenho um carrinho de compra: $_SESSION['id_cliente'] = $_POST['id_cliente']; ai faço um SELECT para pegar os dados do cliente com esse id que tenho porque preciso dos dados do mesmo até o fechamento do orçamento e ei que surge o problema. Ao alterar a quantidade de produto ou se excluo algum ítem eu perco a referência do cliente. Faço isso ao atualizar e/ou excluir: <input name="btn_atualiza" type="image" onClick="enviar('A');" src="imagens/atualiza.gif" alt="Atualiza Valores" width="25" height="25"> Isso passa a um scritp o parâmetro, vejam: function enviar(opcao) { //OPÇÃO EXCLUIR SELECIONADA if(opcao == 'E') { document.frmCarrinho.opc_excluir.value = 1; document.frmCarrinho.submit(); }//FECHA IF //OPÇÃO ATUALIZAR SELECIONADA if(opcao == 'A') { document.frmCarrinho.opc_atualizar.value = 1; document.frmCarrinho.submit(); }//FECHA IF //OPÇÃO FRETE if(opcao == 'F') { document.frmCarrinho.opc_frete.value = 1; document.frmCarrinho.submit(); }//FECHA IF }//FECHA FUNCTION Ai no corpo da página tenho isso: //verifica se a opção atualizar foi selecionada if($_POST[opc_atualizar]) { // recebe os produtos $atualiza = $_POST[a_prod]; // pega a chave do array $chave = array_keys($atualiza); // exibe for($i=0; $i<sizeof($chave); $i++) { // pega o índice do produto $indice = $chave[$i]; // altera a quantidade do produto selecionado $_SESSION[cesta][$indice][QTDE] = $atualiza[$indice][QTDE]; }// fecha for header("Location:carrinho.php"); }// fecha if Ao atualizar perco a referência do cliente, tem como isso não acontecer? Estou batendo a cabeça com isso e gostaria de uma dica e desculpem pela extensão do post. Valeu e fiquem na paz. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 9, 2009 Olha... não vi esta parte do teu código, mas o que deve estar acontecendo é o seguinte. Quando existe o $_POST['id_cliente'] o sistema coloca este valor na SESSION. Quando não foi postado nada, ele coloca como vazio (que é o valor de $_POST['id_cliente']). Para corrigir, sugiro mais ou menos assim if (!empty($_POST['id_cliente'])) $_SESSION['id_cliente'] = $_POST['id_cliente']; Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
formigoni 0 Denunciar post Postado Julho 10, 2009 Olá, bom dia Matias. Obrigado por ter respondido, andei dando uma olhada na dica que você me passou e funcionou. Muito obrigado e fica na paz. Valter Compartilhar este post Link para o post Compartilhar em outros sites