Ir para conteúdo

POWERED BY:

Arquivado

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

nobre9910

[Resolvido] Popup passando valor para o input dinamico

Recommended Posts

Fala pessoal, beleza?

Seguinte, me deparei com um probleminha que ainda não resolvi.

Tenho um form que tem inputs dinamicos (ao clicar no link ele gera um novo campo input), ou seja, tenho um array de inputs, até ai tudo bem.

Ao lado de casa input eu tenho dois links, um para remover o input e outro para abrir um popup, até ai também ta ok.

O problema é que quando eu clico no link para abrir o popup ele me mostra vários links e quero que ao clicar em um desses links ele feche automaticamente o meu popup e insira no input o valor passado através do links.

 

alguém pode ajudar?

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites
quero que ao clicar em um desses links ele feche automaticamente o meu popup e insira no input o valor passado através do links.

isso é com javascript, vou mover teu topico.

 

você vai precisar de um window.close()

e de uma função que acesse o input da página "pai", veja sobre o método window.opener, para acessar o documento pai apartir do popup

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Eu consigo abrir o popup e ao clicar no link fechar o popup, mas não consigo passar o valor do link clicado para o input pai.

 

no aguardo de respostas, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

passa o id do input pela url para você saber em qual input você vai inserir depois

posta o código para vê até onde você fez

 

Victor, valeu pela resposta.

Abaixo segue o fonte:

 

 

<!-- AO CLICAR NO LINK ADICIONA UM NOVO CAMPO INPUT É ADICIONADO -->

<script type="text/javascript">
var mainDivName = 'eventConhecimento';

function addConhecimento()
{
	var ni = document.getElementById(mainDivName);

	var numi = document.getElementById('theValue');
	var num = (document.getElementById("theValue").value -1)+ 2;
	numi.value = num;

	var divIdName = "eventDate"+num+"Div";
	var newdiv = document.createElement('div');
	newdiv.setAttribute("id",divIdName);

               //TABELA QUE CONTEM O INPUT, LINK PARA O POPUP E O LINK DE REMOVER

	newdiv.innerHTML = "<table> <tr> <td><input type=\"text\" name=\"area_conhecimento[]\" class=\"campo\"> </td> <td> <a href='' onclick=\"window.open('url', 'area_conhecimento', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=380, height=460, left=110'); return false;\"><img src=\"../images/icons/chart_organisation.png\" alt=\"Conhecimento\" /></a> </td> <td> <a href=\"#\" onclick=\"removeEvent(\'"+divIdName+"\')\"> <img src=\"../images/remove.gif\" alt=\"del\" border = 0 /></a> </td> </tr> </table>";

	ni.appendChild(newdiv);

}

       //REMOVE UM INPUT
function removeEvent(divNum)
{
	var d = document.getElementById(mainDivName);
	var olddiv = document.getElementById(divNum);
	d.removeChild(olddiv);
}
</script>

 

 

AQUI TEM O LINK QUE CHAMA O JS PARA ADICIONAR DINAMICAMENTE OS INPUTS E SEUS RESPECTIVOS LINKS DE POPUP

 

<input type="hidden" value="0" id="theValue" />
<a href="#.php" onClick="addConhecimento();"> <img src="../images/mais.gif" alt="Adicionar" border="0"  /> </a><br />
<div id="eventConhecimento"> </div>

 

 

 

PAGINA POPUP COM OS LINKS

é aqui o problema, consigo abrir o popup com os links certinho, mas nao consigo fazer que ao clicar em um link o popup se feche e o valor do link seja passado para o respectivo campo input.

alguém pode ajudar?

 

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observe essa linha, abaixo as mudanças

newdiv.innerHTML = "<table> <tr> <td><input type=\"text\" name=\"area_conhecimento[]\" class=\"campo\"> </td> <td> <a href='' onclick=\"window.open('url', 'area_conhecimento', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=380, height=460, left=110'); return false;\"><img src=\"../images/icons/chart_organisation.png\" alt=\"Conhecimento\" /></a> </td> <td> <a href=\"#\" onclick=\"removeEvent(\'"+divIdName+"\')\"> <img src=\"../images/remove.gif\" alt=\"del\" border = 0 /></a> </td> </tr> </table>";

 

nessa parte

<input type=\"text\" name=\"area_conhecimento[]\" class=\"campo\">

 

não existe um id na caixa de texto

então cria o id

<input type=\"text\" name=\"area_conhecimento[]\" class=\"campo\" id='text"+num+"'>

 

depois nessa parte onde você chama a popup

<a href='' onclick=\"window.open('url', 'area_conhecimento', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=380, height=460, left=110'); return false;\"><img src=\"../images/icons/chart_organisation.png\" alt=\"Conhecimento\" /></a>

 

cria uma função para isso que fica mais organizado

function open_popup(id,pagina){
  var url = pagina+'?id'+id;
  //chama a popup de acordo com sua configuração
  window.open( url,'area_conhecimento', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=380, height=460, left=110');
}

 

e chama a função passando como argumento o id e o endereço da pagina popup

 

<a href='#' onclick=open_popup("+num+",'pagina.php')><img src=\"../images/icons/chart_organisation.png\" title=\"Conhecimento\" /></a>

 

agora na popup você consegue recuperar o id da caixa de texto para retornar

 

para retornar da popup, observe esse tópico que está diretamente relacionado

http://forum.imasters.com.br/topic/427473-como-passar-informacoes-para-javascript-usando-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Victor por sua ajuda,

ainda não testei a solução proposta, mas assim que eu testar volto a comentar seu post.

Desde já agradeço!

 

volto a postar quando testar a solução, valeuuu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Victor por sua ajuda,

ainda não testei a solução proposta, mas assim que eu testar volto a comentar seu post.

Desde já agradeço!

 

volto a postar quando testar a solução, valeuuu!

 

Pessoal, consegui fazer funcionar perfeitamente.

Victor, valeu cara, você ajudou muito. Vou colocar a forma que fiz completa abaixo caso alguem tenha a mesma dúvida.

 

 

<!-- AREA DO CONHECIMENTO, AO CLICAR NO LINK ADICIONA UM NOVO CAMPO PARA AREA DO CONHECIMENTO -->

<script type="text/javascript">

 

 

//funcao para abrir o popup

function open_popup(id,pagina)

{

var url = pagina+'?id='+id;

//chama a popup de acordo com sua configuração

window.open( url,'Area do Conhecimento', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=380, height=460, left=110');

}

 

 

 

var mainDivName = 'eventConhecimento';

 

 

//funcao que adiciona um novo input no form

function addConhecimento()

{

var ni = document.getElementById(mainDivName);

 

var numi = document.getElementById('theValue');

var num = (document.getElementById("theValue").value -1)+ 2;

numi.value = num;

 

 

var divIdName = "eventDate"+num+"Div";

var newdiv = document.createElement('div');

newdiv.setAttribute("id",divIdName);

newdiv.innerHTML = "<table> <tr> <td><input type=\"text\" name=\"area_conhecimento[]\" class=\"campo\" id=\"conhecimento"+num+"\"> </td> <td> <a href='#' onclick=open_popup("+num+",'fontesEletronicas_treeviewConhecimento')><img src=\"../images/icons/chart_organisation.png\" title=\"Conhecimento\" /></a> </td> <td> <a href=\"#\" onclick=\"removeEvent(\'"+divIdName+"\')\"> <img src=\"../images/remove.gif\" alt=\"del\" border = 0 /></a> </td> </tr> </table>";

 

ni.appendChild(newdiv);

}

 

//remove um input

function removeEvent(divNum)

{

var d = document.getElementById(mainDivName);

var olddiv = document.getElementById(divNum);

d.removeChild(olddiv);

}

</script>

 

 

<!-- link que adciona um novo input -->

 

<input type="hidden" value="0" id="theValue" />

<a href="#.php" onClick="addConhecimento();"> <img src="../images/mais.gif" alt="Adicionar" border="0" /> </a><br />

<div id="eventConhecimento"> </div>

 

qq duvida é so falar galera, valeu!

abraços!

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.