Peguei um formulario e coloquei ele todo dentro de uma variavel $FORMULARIO;
Depois dessa variavel, fiz um include para uma pagina (frete.php) que me retornará o resultado do calculo do frete. Eu acho que até não há nehuma novidade né?
Acontece, que nessa pagina frete.php, tem uma chamada para a variavel $FORMULARIO pois, caso o resultado do frete.php dê um numero negativo exibe o erro, mas, caso o frete.php retorne valores do frete, dai exibe o formulario que esta na variavel $FORMULARIO;
Até ai deu para entender?
Bom, até neste ponto, tudo esta correto.
Porem, quando submeto os dados do formulario que esta na variavel $FORMULARIO, os $HTTP_POST_VARS simplemente não vão.
Pergunta
Carlos Rocha
Ola a todos!
Resolvi em partes meu problema.
O que eu fiz:
Peguei um formulario e coloquei ele todo dentro de uma variavel $FORMULARIO;
Depois dessa variavel, fiz um include para uma pagina (frete.php) que me retornará o resultado do calculo do frete. Eu acho que até não há nehuma novidade né?
Acontece, que nessa pagina frete.php, tem uma chamada para a variavel $FORMULARIO pois, caso o resultado do frete.php dê um numero negativo exibe o erro, mas, caso o frete.php retorne valores do frete, dai exibe o formulario que esta na variavel $FORMULARIO;
Até ai deu para entender?
Bom, até neste ponto, tudo esta correto.
Porem, quando submeto os dados do formulario que esta na variavel $FORMULARIO, os $HTTP_POST_VARS simplemente não vão.
Eis os códigos:
CarrinhoFinal_Conteudo.php
... if ($acao=="RECEBE_CEP_SERVICO") { $busca = mysql_query("SELECT * FROM clientes where id='$SESSAOlogin';") or die("A consulta falhou: " . mysql_error()); list($id, $nome, $email, $cidade, $estado, $senha, $cpfcnpj, $tel, $cel, $endereco, $numero, $bairro,$cep) = mysql_fetch_row($busca); $FORM_ENDERECO = " <FORM METHOD='POST' ACTION='CarrinhoFinal.php?acao=gravar_pedido' name='FORM'> <INPUT TYPE='hidden' NAME='FORM' VALUE='FORM'> <INPUT TYPE='hidden' NAME='peso_medio' VALUE='$peso_medio'> <input type='hidden' name='TENVIO' value='$TENVIO; ?>'> <input type='hidden' name='TCEP' value='$TCEP; ?>'> <input type='hidden' name='Id_Cliente' value='$SESSAOlogin; ?>'> <TABLE width='400' align='center'> <tr><td colspan='2' align='center'><h2><b>Finalizando Compra<br>Por favor. Confira os dados e preencha corretamente o formulário antes de prosseguir!</b></h2></td></tr> <TR> <TD>PAGAMENTO </TD> <TD> <!-- <div id='cartao' style='display:block;'>oi</div> onclick='java script: fecha('cartao');' --> <INPUT type='radio' NAME='TPGTO' value='MASTERCARD' checked='checked'> MASTERCARD <br> <INPUT type='radio' NAME='TPGTO' value='BOLETO'> BOLETO (À Vista)<br> <INPUT type='radio' NAME='TPGTO' value='DEPOSITO'> DEPÓSITO (À Vista) </TD> </TR> <TR> <TD>NOME:/RAZÃO SOCIAL </TD> <TD><INPUT TYPE='text' NAME='TNOME' value='$nome' disabled='disabled'></TD> </TR> <TR> <TD>CPF/CNPJ:</TD> <TD><INPUT TYPE='text' NAME='TCPF' value='$cpfcnpj' disabled='disabled'></TD> </TR> <TR> <TD>EMAIL:</TD> <TD><INPUT TYPE='text' NAME='TEMAIL' value='$email' disabled='disabled'></TD> </TR> <TR> <TD>ENDEREÇO: <font color='red'>(de entrega)</font></TD> <TD><INPUT TYPE='text' NAME='TENDERECO' value='$endereco'></TD> </TR> <TR> <TD>BAIRRO:</TD> <TD><INPUT TYPE='text' NAME='TBAIRRO' value='$bairro'></TD> </TR> <TR> <TD>CIDADE:</TD> <TD><INPUT TYPE='text' NAME='TCIDADE' value='$cidade'></TD> </TR> <TR> <TD>ESTADO:</TD> <TD><INPUT TYPE='text' NAME='TESTADO' value='$estado'></TD> </TR> <TR> <TD>FONE (Contato):</TD> <TD><INPUT TYPE='text' NAME='TFONE' value='$tel'></TD> </TR> <input type='hidden' name='valor_final' value='$valor_final; ?>'> <TR align='center'> <TD colspan='2'><input type='submit' name='Finalizar' value='Finalizar' WIDTH='78' HEIGHT='20' style='background-color: rgb(0,111,55); color: rgb(255,255,0)' onClick='CriticaFormulario()'></TD> </TR> </TABLE> </FORM> "; include ('frete.php'); } }frete.php<?php ##################################### # Código dos Serviços dos Correios # # FRETE PAC = 41106 # # FRETE SEDEX = 40010 # # FRETE SEDEX 10 = 40215 # # FRETE SEDEX HOJE = 40290 # # FRETE E-SEDEX = 81019 # # FRETE MALOTE = 44105 # # FRETE NORMAL = 41017 # # SEDEX A COBRAR = 40045 # ##################################### $nCdEmpresa = ""; $sDsSenha = ""; $nCdServico = $_POST['TENVIO']; $sCepOrigem = 36855000; $sCepDestino = $_POST['TCEP']; $sCepDestino = eregi_replace("([^0-9])","",$sCepDestino); $nVlPeso = $peso_medio; $nCdFormato = 1; $nVlComprimento = 20; $nVlAltura = 20; $nVlLargura = 20; $nVlDiametro = 0; $sCdMaoPropria = "N"; $nVlValorDeclarado = 0; $sCdAvisoRecebimento = "S"; // URL de Consulta dos Correios entregue à variavel $correios $correios ="http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?" ."nCdEmpresa=$nCdEmpresa&" ."sDsSenha=$sDsSenha&" ."sCepOrigem=$sCepOrigem&" ."sCepDestino=$sCepDestino&" ."nVlPeso=$nVlPeso&" ."nCdFormato=$nCdFormato&" ."nVlComprimento=$nVlComprimento&" ."nVlAltura=$nVlAltura&" ."nVlLargura=$nVlLargura&" ."sCdMaoPropria=$sCdMaoPropria&" ."nVlValorDeclarado=$nVlValorDeclarado&" ."sCdAvisoRecebimento=$sCdAvisoRecebimento&" ."nCdServico=$nCdServico&" ."nVlDiametro=$nVlDiametro&" ."StrRetorno=xml"; $dados_correios = simplexml_load_file($correios); //print_r($dados_correios); print "<p>"; $total = $dados_correios->xpath('cServico/Valor'); $total = floatval(str_replace(',', '.', $total[0])); $PrazoEntrega = $dados_correios->xpath('cServico/PrazoEntrega'); $erros = $dados_correios->xpath('cServico/Erro'); $ValorAvisoRecebimento = $dados_correios->xpath('cServico/ValorAvisoRecebimento'); if ($erros[0] != 0) { // Tratamento dos Erros //CEP de destino inválido if ($erros[0] == -3) { Print "CEP de destino inválido.<br> Cloque <a href='java script:window.history.go(-1)'>Aqui</a> e tente um novo CEP!"; echo "<script>document.FORM.Finalizar.disabled=true;</script>"; } //Sistema temporariamente fora do ar. Favor tentar mais tarde. else if ($erros[0] == -33) { Print "Sistema dos correios temporariamente fora do ar.<br> Por favor navegue um pouco mais pelo site e após alguns segundos, tente novamente!"; echo "<script>document.FORM.Finalizar.disabled=true;</script>"; } //Serviço indisponível para o trecho informado. else if ($erros[0] == -6) { echo "<script>alert('Sistema dos correios indisponível para o trecho informado');</script>"; session_unregister("MeuCarrinho"); echo "<script>document.location='produtos.php?acao=listar'</script>"; } //Para qualquer outro erro else { Print "CEP de destino inválido ou erro no sistema dos correios.<br> Cloque <a href='java script:window.history.go(-1)'>Aqui</a> e tente um novo CEP!"; echo "<script>document.FORM.Finalizar.disabled=true;</script>"; } } else { print $FORM_ENDERECO; switch ($nCdServico) { case 41106: $nome_servico = " PAC "; break; case 40010: $nome_servico = " SEDEX "; break; } ?> <TABLE width='400' align='center'><tr> <TD>VALORES:</TD> <TD> <? print "O valor da sua compra sem o frete R$ "; print number_format($preco_total, 2, ',', '.'); print "<p>"; print "O valor do envio por "; print $nome_servico; print " será de: R$"; print number_format($total, 2, ',', '.'); print "<p>"; print "O prazo de entrega será de "; print $PrazoEntrega[0]; print " dia(s) úteis"; print "<p>"; $valor_final = $total + $preco_total; print "O valor da tua compra com o frete R$ "; print number_format($valor_final, 2, ',', '.'); ?> </td></tr></table> <? } // Neste exemplo estou colocando apenas PAC e SEDEX ?>Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.