Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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!
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
>
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!
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/
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!
>
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!
>
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