Eu tenho uma aplicação onde tenho um botao de pesquisa e esse botao vai abrir um popup e quando esse popup foi aerto,eu vou ter que fazer uma pesquisa e retornar os campos pesquisados preenchedno meu formulario da tela chamadora.
Mas la na tela de pesquisa,eu escrevo um grid com bean:write…
Estou usando struts,e estou com esse problema.
Alguem pode me dar ideias?
no botão que vai abrir o seu popup vc coloca no evento onclick dele:
function abreJanela(){
window.open("SUAACTION.do,null,"status=yes,menubar=no,scrollbars=yes,height=480,width=640");
}
esse javascript vai abrir sua popup e vai direcionar para sua action!
no seu popup, quando vc quiser mandar sua informação de volta para a tela chamadora, faça assim:
[code]function PassaDados(nome, cod){
window.opener.document.forms[0].action = SUA_ACTION_DA_TELA_CHAMADORA.do";
window.opener.document.forms[0].submit();
Fechar();
}
function Fechar(){
window.close();
}[/code]
eu tenho algumas telas que usam isso e funcionam perfeitamente, qq coisa só postar!!!
abraços, boa sorte!!!
só esqueci de falar uma coisa, caso vc queira processar algo com as informações vinda do seu popup, faça o seguinte:
ps: vamos chamar a tela que chama o seu popup de PAI e seu popup de FILHA!
na PAI, vc coloca um campo hidden que vai servir para receber as coisas que vc enviar da FILHA, na FILHA, vc coloca no javascript algo parecido com isso:
[code]function PassaDados(nome, cod){
// nome do hidden que está na PAI
window.opener.document.forms[0].HIDDEN_PAI.value = oque_vc_quer_passar_para_a_pai;
window.opener.document.forms[0].action = “SUA_ACTION_DA_TELA_CHAMADORA.do”;
window.opener.document.forms[0].submit();
Fechar();
}
function Fechar(){
window.close();
}[/code]
a linha window.opener.document.forms[0].HIDDEN_PAI.value = oque_vc_quer_passar_para_a_pai; pega o hidden da tela PAI e popula com o dados que vc passo pela FILHA, depois de feito isso, repare que tem um window.opener.document.forms[0].submit(); é ai que se submete oque foi passado pela FILHA!!!
OK!?!?!?!
Boa sorte
Mas o problema é que o que quero mandar não faz parte do form.
Eu itero coleções e escrevo com bean:Write as informaçõs do bean na ela…Então,como mando isso para tela novamente?
essa informação que vai ser passada da FILHA para a PAI, vão ser processadas?
caso negativo:
vamos supor que vc queira somente escrever em um <input type=“text” …> oque vc escolheu no seu popup.
faça um link com cada <bean:write …>, chame o javascript passado para vc com o evento onclick=""
e o seu javascript vai ser assim:
[code]function PassaDados(nome, cod){
window.opener.document.all.NOME_DO_SEU_INPUT_NA_TELA_PAI.value = O_VALOR_QUE_FOI_PASSADO_NO_LINK
// nome do hidden que está na PAI
window.opener.document.forms[0].HIDDEN_PAI.value = oque_vc_quer_passar_para_a_pai;
window.opener.document.forms[0].action = “SUA_ACTION_DA_TELA_CHAMADORA.do”;
window.opener.document.forms[0].submit();
Fechar();
}
function Fechar(){
window.close();
}[/code]
deve ser isso que vc quer, caso não for, explique melhor, explique o contexto de sua aplicação, ai ficara mais fácil para ajudar!!!
Xo te explicar…
Funciona assim, eu tenho uma tela de cadastro de produtos, que tem 3 campos …Codigo/descricao/pontuacao…
E tenho um botao pesquisaar…Ai quando clico no botao pesquisar…Eu pesquiso e no poupu aparece o grid com a pesquisa…E assim, quando eu clicar em um linha do grid,essa linha preenchera oform da minha tela de cadastro…O campo descricao nao eh editavel…
E pronto,eh isso que quero fazer…Acho q da forma q vc falou nao rola…Pq eu preciso setar com beanwrite,e javascript,nao suporta bean:write como parametro…ou estou enganado?teste e nao deu certo…
Mcbarsortti,
Vc tem como me ajudar?
O meu problema é o seguinte:
Já fiz a janela popup tudo certinho, já está listando os dados de uma consulta sql direitinho, o problema é quando o popup exibe mais de um item na lista, quando escolho qual o item da popup eu quero, aparece no campo UNDEFINED da janela PAI.
Mas quando a pesquisa retorna apenas um item, aí ela preenche os campos da janela PAI certinho.
Tem como me ajudar?
Segue o codigo da aplicaçào abaixo:
popup.jsp
<script language="JavaScript">
function putData() {
var codigo = document.form_popup.cdg.value;
var nome = document.form_popup.nomeund.value;
window.opener.document.getElementById('unidade').value = codigo;
window.opener.document.getElementById('unidadeNomeRel').value = nome;
window.close();
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Pesquisa de Unidades/Áreas</title>
</head>
<body>
<form name="form_popup" action="" method="POST">
<table border=0 align="center">
<tr bgcolor="blue" class="style2" align="center">Pesquisa Unidade</tr>
<tr>
<td class="style2">
Nome Unidade:<input type="text" name="nome" value="" size="30" />
</td>
<td>
<input type="submit" value="Buscar" name="btBuscar" />
</td>
</tr>
</table>
<table id="tb1" align="center" class="style2">
<tr><td>Código</td><td>Nome</td><td>Seleciona</td></tr>
<%
while(rs.next()){
out.println("<tr><td><input type='text' name='cdg' id='cdgv' size='3' value='"+rs.getInt(1)+"'/></td>");
out.println("<td><input type='text' name='nomeund' id='unidadenome' size='20' value='"+ rs.getString(2)+"'/></td>");
out.println("<td><a href='#' onClick='putData()'/>...</td></tr>");
}
%>
</table>
<script>
cor_tabela("tb1");
</script>
</form>
</body>
</html>