Como fazer reload na pagina chamadora

3 respostas
R

Galera no sistema que estou desenvolvendo estou com a seguinte dificuldade.

Tenho uma lista com o resultado de uma query do banco em uma janela popup, ai quando clico em uma linha da lista me abre uma janela popup com os detalhes da linha solicitado e um botão para excluir.

Quando clico em excluir eu fecho a janela de detalhes e dou um refresh na de lista. Porem quando dou o refresh na pagina de lista me aparece a seguinte mensagem:

Algume sabe como dar o refresh da pagina chamadora sem aparecer essa mensagem?

Códigos

// js do botão de excluir.
function excluir(){
   if(confirm("Deseja excluir a Ficha?")){
      document.documentacaoForm.acao.value = "excluir";
      documentacaoForm.submit();
   }
}

depois chamo esse outro js:
function fechar(){
   window.opener.reloadPage();
   window.close();
}

que chama esse na pagina chamadora:
function reloadPage(){
   javascript:location.reload();
}

Grato,

Rodolfo

3 Respostas

A

Rodolfo,

O seu problema é: você está tentando fazer reload em uma página que foi carregada a partir de a submissão de um form via POST.

Jeito de resolver o problema:

  • Passar o tipo de requisição do form para GET
    ou
  • Resubmeter o Form ao invés de dar o reload.

Abraço,

Armando

M

Pelo que eu entendi a página que abre o seu popup é carregada após vc passar algumas informações para ela, como valores em um form ou parâmetros numa querystring comum, correto?

pagina1.jsp
<form>
<input name="param" value="1" />
<input type="submit" />
</form>

// após o submit carrega os dados de acordo com "param":

pagina2.jsp
<form>
<input name="nome" value="aaaa" />
<input name="tel" value="bbbb" />
<input name="email" value="cccc" />
</form>
<input type="button" onclick="abrePopup()" />

// abre o popup para os dados da página2:

popup.jsp
...

Então, essa mensagem que está aparecendo para você é a mesma coisa que aparece quando vc dá F5 ou Ctrl+R em uma página que foi carregada da mesma forma (como a pagina2.jsp do exemplo acima), o browser também pergunta se vc quer reenviar os dados passados anteriormente.

Uma solução rápida pro seu problema seria passar para a página de popup os parâmetros que vc passou para a pagina2.jsp (usando o exemplo) e, ao invés de dar um reload na página “opener”, dar um location.href:

function reloadPage(){
	javascript:location.href='pagina2.jsp?param1=1&param2=2';
}

Não é das melhores soluções, mas resolveria o problema rápido. Se vc estiver passando muitos parâmetros, ou se há a possibilidade de aumentar a quantidade de parâmetros no futuro, seria melhor repensar em como vc está montando a sua solução. Javascript para isso não passa de quebra-galho.

R

Armando obrigado pela ajuda mas mesmo com o submit (nomeform.submit():wink: como mudando o metodo do form para get a mensagem continua aparecendo.

MarcioTavares o problema de usar o location.href é que a tela anterior a da lista é a de pesquisa, na qual eu desenvolvi uma pesquisa boleana dinamica tipo motado a minha query e eu não consigo saber de ante-mão quais os filtros serão usados.

Oque eu vou tentar e gravar meu filtro em uma variavel só e deixa-la como hidden. tipo campo1:valor1;campo2:valor2;campo3:valor3;

Não é do jeito mais elegante mais acho que assim consigo fazer funcionar.

Caso alguem tenha outra sugestão favor postar.

grato

Criado 11 de setembro de 2006
Ultima resposta 11 de set. de 2006
Respostas 3
Participantes 3