Ir para conteúdo

POWERED BY:

Arquivado

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

odaier

[Resolvido] dados de um form + window.opener.location.reload();

Recommended Posts

Olá.

Estou com o seguinte problema:

A partir de uma janela Pai abro uma janela Filho com javascript.

A idéia da janela filho é atualização de dados de um db mySql via form.

Gostaria de, após a atualização (em PHP), dar reload automático da página pai.

Não sou expert em javascript; acho que o procedimento seria uma função que use o

window.opener.location.reload();

 

OK, consigo fazer o reload, mas não envia os dados do form.

Os códigos são os segunintes:

 

Do Pai.php:

 

...(pego todos os dados com PHP e o link p/ o filho é o seguinte:

<?php
$meu_campo = $_POST['meu_campo'];


if (isset($meu_campo))
{
echo "pego o campo: ".$meu_campo."<br>";
}

echo "<a href=\"javascript\" onclick=\"window.open('Filho.php?cod_contato=">','cod_contato', 'width=400,height=400,left=300,top=50,screenX=300,screenY=50,resizable=no,scrollbars=yes,location=no,status=no,toolbar=no,diretories=no,menubar=no,fullscreen=no'); return false;\"> Janela Filho </a>";

?>

E do Filho:

<head>
<script type="text/javascript">
// para recarregar parent após atualizar
function send(){
window.opener.location.reload();
window.close();
}
</script>
</head>

<form method="post" action="Pai.php" name="f1">

<textarea name="meu_campo" cols="40" rows="10"> abobora </textarea>

<input type="submit" onclick=" send()" value="enviar">

</form>

Me parece claro que o erro está no javascript, que fecha o Filho e faz o reload, mas não faz a função submit.

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido

 

Programaçao > PHP - Patrocínio: TreinaWeb http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Desenvolvimento > Javascript / DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

riraito,

criei

 

<script language="JavaScript">
// para submit do form

function formSubmit()
{
document.getElementById("f1").submit()
}
</script>

e modifiquei o input

 

<input type="submit" onClick="formSubmit(); send()" value="enviar">

 

mas continua da mesma forma: recarrega o Pai mas não envia os dados do POST

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o script de envio para o mysql no filho.

 

Nele mesmo, você coloca um:

 

If adicinou no sql{ Reload na pagina pai e fecha o popup);

 

O problema creio eu, é que ele não ta conseguindo enviar o post para o pai do jeito que você quer, Eu até não entendi direito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

riraito,

 

tendo em vista sua resposta, acho que é isto mesmo que está pensando. Posso perfeitamente atualizar o banco no Filho e dar o reload e close dentro do if.

Mas, como não conheço javascript muito bem, pode me dizer qual a sintaxe correta para este if?

 

<?php ...
if (banco_atualizado)
{
  ?>

<javascript>não sei como colocar as funções javascript de reload e close</javascript>
 <?php 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php ...

if (banco_atualizado)

{

echo '<script language="javascript" type="text/javascript">

window.opener.location.reload();

window.close();

</script>';

 

 

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A maneira mais simples de resolver e no form FILHO usar o seguinte comando :

 

Sendo o form PAI :

<form name="consulta" method="post" onSubmit="return valida(this);" enctype="multipart/form-data">

 

Na finalização do form FILHO, depois que executou o comando MySQL, em vez de RELOAD :

 

<script>
alert("Mensagem de comando MySQL executada ......\n");
window.opener.consulta.submit();
window.close();
</script> ';

 

com este .submit (antecedido do NOME do form PAI) ele reapresenta a pagina PAI com todos os parametros.

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.