Ir para conteúdo

POWERED BY:

Arquivado

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

Willian Correia

Redirecionar apos enviar dados do formulario

Recommended Posts

Galera estou com um problema, montei um formulario com metodo POST apos enviar a consulta ele gera uma url.

Mas eu quero que essa url seja redirecionada para o browser.

Tambem queria que pegar essa url via ajax e colocar dentro de um iframe na mesma pagina..


<?php

		$idaevolta = $_POST["idaevolta"];
		$origem = $_POST["origem"];
		$destino = $_POST["destino"];
		$ida = $_POST["ida"];
		$volta = $_POST["volta"];
		$adultos = $_POST["adultos"];
		$criancas = $_POST["criancas"];
		$bebes = $_POST["bebes"];

		$link = "http://www.ipdocliente.com.br/OTAFrame/SuiteAerea/guiAereoAeroportos.aspx?PesquisaAutomatica=S&Tipo="; 

		$UrlFinal = $link . $idaevolta . "&Origem=" . $origem . "&Destino=" . $destino . "&Adultos=" . $adultos . "&Criancas=" . $criancas . "&Bebes=" . $bebes . "&DataIda=" . $ida . "&DataVolta=" . $bebes . "&LojaChave=ddwqdqwde12123==";                           

		header('Location: '.$UrlFinal );


	?>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra evitar erros ao enviar cabeçalhos você pode usar o ob_start() ou, muito mais simples, apenas use JavaScript para redirecionar. Nem precisa de Ajax pra fazer isso, é só usar o window.open() do próprio javascript, já que você tá trabalhando com um iframe. Ajax seria necessário caso fosse uma div, mas um iframe facilita as coisas. Veja só como ficaria o redirecionamento. Lembre-se: você deve colocar um name="" no seu iframe para funcionar corretamente. Vou tratar como se seu iframe estivesse com name="meu_frame". Vamos lá:

/* Substitua header('Location: '.$UrlFinal ); pelo código abaixo: */

echo "<script>window.open('$UrlFinal','meu_frame');</script>";

/* onde, $UrlFinal é a página a ser aberta e 'meu_frame' é o nome que você definiu para o seu iframe. No nosso exemplo, eu defini o nome meu_frame, portanto ele irá redirecionar a página $UrlFinal para o iframe cujo nome for meu_frame, neste exemplo. */

 

Obs: finalmente aprendi a usar o ob_start(), graças às dicas do Alaerte Gabriel e do outro pessoal que me ajudou no tópico que criei, rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, debug o seu script, está claro que o seu link não é válido.

 

Faça isso:

 

Além do mais, você não pode utilizar espaços no início da aplicação quando se utilizar header. Veja, desta forma ele irá redirecionar para pagina.php que por não existir te retornara um not found

 








<?php
$idaevolta = $_POST["idaevolta"];
$origem = $_POST["origem"];
$destino = $_POST["destino"];
$ida = $_POST["ida"];
$volta = $_POST["volta"];
$adultos = $_POST["adultos"];
$criancas = $_POST["criancas"];
$bebes = $_POST["bebes"];

#$link = "http://www.ipdocliente.com.br/OTAFrame/SuiteAerea/guiAereoAeroportos.aspx?PesquisaAutomatica=S&Tipo=";

#$UrlFinal = $link . $idaevolta . "&Origem=" . $origem . "&Destino=" . $destino . "&Adultos=" . $adultos . "&Criancas=" . $criancas . #"&Bebes=" . $bebes . "&DataIda=" . $ida . "&DataVolta=" . $bebes . "&LojaChave=ddwqdqwde12123==";

header('Location: pagina.php');
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ecoe as partes do script que possivelmente estão dando erro (acredito mesmo que seja na url, então..):

<?php
		$idaevolta = $_POST["idaevolta"];
		$origem = $_POST["origem"];
		$destino = $_POST["destino"];
		$ida = $_POST["ida"];
		$volta = $_POST["volta"];
		$adultos = $_POST["adultos"];
		$criancas = $_POST["criancas"];
		$bebes = $_POST["bebes"];

		$link = "http://www.ipdocliente.com.br/OTAFrame/SuiteAerea/guiAereoAeroportos.aspx?PesquisaAutomatica=S&Tipo="; 

echo "Veja aqui tudo o que foi enviado pelo método POST<br />";
echo "<pre>";
print_r($_POST);
echo "</pre>";


echo "<br /><br />";
echo "O link original: ".$link;
echo "<br /><br />";

		$UrlFinal = $link . $idaevolta . "&Origem=" . $origem . "&Destino=" . $destino . "&Adultos=" . $adultos . "&Criancas=" . $criancas . "&Bebes=" . $bebes . "&DataIda=" . $ida . "&DataVolta=" . $bebes . "&LojaChave=ddwqdqwde12123==";
                           
echo "A url final: ".$UrlFinal;
	?>

 

Ele vai imprimir as duas url's pra você e também todo o conteúdo enviado pelo POST. Veja se há algum erro na montagem delas. Caso tenha você saberá qual é e será capaz de acertar. Quando ao redirecionamento, o que te enviei é 100% funcional, basta a URL estar montada corretamente e o seu Iframe tem que ter um name igual ao segundo elemento do window.open, como mostrei no exemplo. Caso prefira o Header, não deixe nenhum espaço e coloque-o antes de qualquer saída, senão vai dar erro, a menos que você use o ob_start() pra armazenar o buffer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o iframe tá atualmente na página que recebe os dados? Se sim, você pode colocar esse código todo (o que está abaixo) na mesma página do formulário. Depois é só mudar o action do seu form e colocar o nome dessa mesma página. Assim o iframe fica na mesma página e aí você pode abrir o resultado sem sair da página de formulário.

 

Se estiver separado, tente juntá-las, as duas páginas, como dito acima.

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.