Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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='javascript: 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
#####################################
$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='javascript: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='javascript:window.history.go(-1)'>Aqui</a> e tente um novo CEP!";
echo "<script>document.FORM.Finalizar.disabled=true;</script>";
}
} 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
?>
Carregando comentários...