Ir ao conteúdo

PHP - Abrir resultado do post do form em nova janela.


costelo

Posts recomendados

Postado

Daê!

Estou desenvolvendo um site e gostaria de fazer o seguinte.

Tenho e seguinte formulário


<form name="form1" id="form1">
<select name="teste" class="formfield" id="teste" >
<?php
$res = mysql_query("SELECT * FROM teste");
while($linha = mysql_fetch_array($res))
{
$id = $linha['id'];
$categoria = $linha['titulo'];
$titulo = substr($categoria, 0, 35);
echo "<option value=$id>$titulo ...</option>";
}
?>
</select>
<INPUT type="button" value=" Ir " onClick="window.open('mostra_teste.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')">
</form>

Este formulário lista uma série de titulos de textos.

Gostaria q apos selecionar o titulo e clicar no botão " IR " esse texto fosse mostrador em uma nova janela.

Mas o fato é q esta nova janela abre, mas nao está recebendo a variavel ID da opção selecionada.

Acredito q falte alguma coisa no codigo do botão


<INPUT type="button" value=" Ir " onClick="window.open('mostra_teste.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')">

Alguem pode me ajudar...

Obrigado

  • Membro VIP
Postado

Submete o formulário por POST, na tela seguinte você vai ter o $_POST[teste] (name do <select>) e nele o ID como valor (que é o value da <option>). Faça uma nova consulta no banco pegando o registro com esse ID e mostre.

Se você quiser em popup basta colocar no <form> target="_blank"

Postado
Daê!

Estou desenvolvendo um site e gostaria de fazer o seguinte.

Tenho e seguinte formulário


<form name="form1" id="form1">
<select name="teste" class="formfield" id="teste" >
<?php
$res = mysql_query("SELECT * FROM teste");
while($linha = mysql_fetch_array($res))
{
$id = $linha['id'];
$categoria = $linha['titulo'];
$titulo = substr($categoria, 0, 35);
echo "<option value=$id>$titulo ...</option>";
}
?>
</select>
<INPUT type="button" value=" Ir " onClick="window.open('mostra_teste.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')">
</form>

Este formulário lista uma série de titulos de textos.

Gostaria q apos selecionar o titulo e clicar no botão " IR " esse texto fosse mostrador em uma nova janela.

Mas o fato é q esta nova janela abre, mas nao está recebendo a variavel ID da opção selecionada.

Acredito q falte alguma coisa no codigo do botão


<INPUT type="button" value=" Ir " onClick="window.open('mostra_teste.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')">

Alguem pode me ajudar...

Obrigado

é necessario colocar o metlhod get ou post nas tags do form que não foi escrito

Postado
Submete o formulário por POST, na tela seguinte você vai ter o $_POST[teste] (name do <select>) e nele o ID como valor (que é o value da <option>). Faça uma nova consulta no banco pegando o registro com esse ID e mostre.

Se você quiser em popup basta colocar no <form> target="_blank"

como ficaria o codigo na pagina q vai receber o resultado do post?

tentei assim mas nao funcionou:

$poema = $_POST[form1] (poemas);

$sql = "SELECT * FROM pt_poemas WHERE id = $poema";

quanto ao target="_blank" até funciona, mas quero poder controlar esse popuo quanto ao tamanho e posicionamento.

  • Membro VIP
Postado

$poema = $_POST[teste] > que é o name do select

o restante OK

Quanto ao tamanho do popup e posicionamento a forma mais simples é você criar um evento "onsubmit" na declaração do formulário. Este evento dispararia uma função que abriria uma janela com o window.open() e também definiria o target do formulário

Exemplo:

<form name="formu" method="post" action="acao.php" onsubmit="javascript: abreResposta(this)">

Daí em javascript você cria a função abreResposta():

<script language="javascript" type="text/javascript">
function abreResposta(formulario) {
window.open("_blank","novaJanela","......");
formulario.target = 'novaJanela';
return true;
}
</script>

Cara, nem testei, mas você se encontrar algum erro vai ser alguma coisa besta. E tá bem tranquilo tb.

Postado

Cara... nao funcionou de nem uma maneira :(

O problema é q a nova pagina que abre nao está recebendo a variavel do select do formulário.

criei um arquivo teste pra assim

<?
echo ($_POST[nomedoselect]);
echo ($_REQUEST[nomedoselect]);
?>

e mesmo assim vi q nao escreve a variavel.

se eu fizer o resultado do formulário abrir normalmente tudo funciona perfeitamente, mas tentando abrir em um popup nao dá.

utilizando o java script

<script language="javascript" type="text/javascript">
function abreResposta(formulario) {
window.open("_blank","novaJanela","......");
formulario.target = 'novaJanela';
return true;
}
</script>

o resultado é o mesmo de por target="_blank" na declaração do formulário.

mais alguma ideia?

Postado

tente colocar o nome dos seletores entre aspas

<?

echo ($_POST['nomedoselect']);

//ou

echo ($_POST["nomedoselect"]);

?>

dica:

para facilitar a vida dos usuários avançados, troque o seu method de POST para GET e não suma com a barra de endereços com java,

porque ai o usuário avançado que olhar na pagina:

minhapagina.net/poemas.php?poem_id=1

de cara vai pensar em tacar 2 se quiser ler outro... (tenho até um plugin de firefox que faz isso (MouseGestures - direta cima direita cima incrementa, direita baixo direita baixo decrementa =D))

e para recuperar

//Com esse trecho no início do código php evita que a página continue sendo interpolada se não estiver setada a variavel poem_id
if (!isset($_GET['poem_id']) {
die('ID não encontrado.');
}
//em seqüência:
$poem_id = $_GET['poem_id'];

  • Membro VIP
Postado

Além do que o KodornaRocks disse, você mudou a declaração do seu formulário, colocando method, action e tal? Porque a primeira estava incompleta...

Postado

depois de mexer muito o codigo ficou assim


<form name="form1" id="form1" method="get" action="mostra_poema.php">
<select name="poemas" class="formfield" id="poemas" >
<?php
$res = mysql_query("SELECT * FROM pt_poemas");
while($linha = mysql_fetch_array($res))
{
$id = $linha['id'];
$titulo = $linha['titulo'];
echo "<option value=$id>$titulo</option>";
}
?>
</select>
<INPUT type="button" value=" Ir " onClick="window.open('mostra_poema.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')">
</form>

o arquivo mostra_poema.php está assim

<?
echo ($_GET[poemas]);
?>

mas ainda nao está recebendo a variável.

ja tentei com o method="post" tambem e nao deu certo.

mais alguma ideia?

  • Membro VIP
Postado

Enquanto você não submeter o formulário não vai receber mesmo, o que você colocou ali foi um botão normal, não um submit.

Postado

Agora fiz o seguinte:

a declaração do formulário ficou assim

<form name="form1" id="form1" method="post" >

tirei a action porque com a action e com o botão submit a pagina home muda para a mostra_poema.php e nao é isso q eu quero. quero q a mosta_poema.php abra em um popup.

mudei o botão para:

<INPUT name="Enviar" type="submit" onClick="window.open('mostra_poema.php','mywindow','width=400,height=200,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes')" value=" Ir ">

mas a mostra_poema.php continua nao recebendo a variavel.

vou refazer tudo porque de tanto que mexi já nao me encontro mais.

se funcionar posto aqui pra vocês como fiz.. se nao funcionar vou pensar em outra maneira de fazer isso.

abraço a todos.

  • 2 semanas depois...
Postado

Bom pessoal, agradeço mesmo a todos vocês q me ajudaram, mas por falta de conhecimento meu nao consegui implementar isso.

Agora já mudei de ideia e farei o resultado do post abrir em uma nova pagina normalmente.

Como todos aqui foram prestativos gostaria de uma ajuda com outro problema: :D

quero de criar um filtro por ip para que os acessos feitos do brasil fossem direcionados para a versão em portugues, enquanto os acessos feitos de qualquer outro lugar fossem direcionados para a versão em inglês.

Alguem já viu algo parecido?

Postado

Colega,

Creio que seu erro está no direcionamento para a janela que abre:

INPUT type="button" value=" Ir " onClick="window.open('mostra_teste.php','mywindow','width=400,height=200...

você deve informar as variáveis enviadas assim:

'mostra_teste.php?variável1=$id&&variavel2=$titulo'

Assim fazendo, a página 'mostra_teste.php' recebe suas variáveis

Abraços

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!