Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Preciso passar o valor que estou recebendo numa função js na páxina principal.asp, para o campo hidden na página grid.asp que é chamada pelo iframe na página principal.asp.
O código que consegui foi esse:
<script language="javascript">
function carregarAtividade()
{
id_proj = document.getElementById('projetos').value;
alert(id_proj);
window.parent.document.campo.value = id_proj; //linha 6
window.parent.document.submit();
}
</script>
Mas da erro na linha 6:
>
Detalhes dos erros da página da Web
Mensagem: 'window.parent.document.campo' é nulo ou não é um objeto
Linha: 6
Caractere: 3
Código: 0
URI: http://localhost/timesheet/principal.asp?mes=4&ano=2011
Alguém pode me dar uma luz?
Botei isso:
window.parent.document.getElementById('cam_ativi').value = id_proj;
window.parent.document.submit();
Agora deu esse erro:
>
Mensagem: 'window.parent.document.getElementById(...)' é nulo ou não é um objeto
Linha: 6
Caractere: 3
Código: 0
URI: http://localhost/timesheet/principal.asp?mes=6&ano=2011
Mostre como está o teu html
o do iframe?
Os 2.. e também onde você está invocando essa função.
Pirncipal.asp
<script language="javascript">
function carregarAtividade()
{
id_proj = document.getElementById('projetos').value;
alert(id_proj);
window.parent.document.getElementById('cam_ativi').value = id_proj;
window.parent.document.submit();
}
</script>
<select name="projetos" id="projetos" onChange="carregarAtividade();">
<option name="escolha">
<%response.Write("Escolha o Projeto")%>
</option>
<%while not rs.eof%>
<option name="projetos" value="<%=rs(0)%>" id="<%=rs(0)%>">
<%response.Write(rs(1))%>
</option>
<%rs.moveNext
wend%>
</select>
<iframe id=grid name="iframe_grid" src="grid.asp" width="960" scrolling="Auto" frameborder="0">
</iframe>
grid.asp
<input type="hidden" id="cam_ativi" /> //aqui eu tenho que receber o id do js
<% seleciona_atividade(Request("id_proj")) %>//aqui eu tenho que chamar uma função que tem na página sql.asp (include), passando o id.
<%while not rs.eof %>
<tr align="right">
<td><input name="atividade" type="text" id="atividade" size="34" value="<%=response.Write(rs(1))%>" disabled="disabled" />Então é ao contrario amigo..
você esta na pagina, e quer acessar um filho dela..
vou da rum exemplo:
index.html
<iframe id="grid" src="grid.html"></iframe>
<script type="text/javascript">
window.onload = function()
{
var grid = document.getElementById('grid').contentWindow;
grid.escreve();
}
</script>
e **grid.html**
<div id="ae"></div>
<script type="text/javascript">
function escreve(){
document.getElementById('ae').innerHTML = 'aeee';
}
</script>Eu sou amiga. :)
Eu quero passar o id do campo option da página principal, para a chamada de função "seleciona_atividade(Request("id_proj")) " na página grid.asp.
Entendeu?
Aí cheguei até essa lógica que é passar o id pra uma função js, mandar pra um campo tipo hidden na página grid.asp e jogar o valor desse campo (que será o id recebido) na chamada de função.
Assim:
jogar o id pra função js:
<select name="projetos" id="projetos" onChange="carregarAtividade();">
<option name="projetos" value="<%=rs(0)%>" id="<%=rs(0)%>">
function carregarAtividade()
<script>
{
id_proj = document.getElementById('projetos').value; // aqui eu recebo o id
alert(id_proj);
window.parent.document.getElementById('cam_ativi').value = id_proj; //Aqui eu deveria enviar o id pro campo hidden da página grid.asp
window.parent.document.submit(); // mas isso não acontece
}
</script>
Receber o id na página grid.asp
<input type="hidden" id="cam_ativi" /> // campo que recebe o valor do id
<% seleciona_atividade(Request("id_proj")) %> //chamada da função passando o valor do id recebido do js da outra página.
Desculpe amiga..
então, execute esse exemplo:
index.html
<input type="text" name="tal" id="tal" value="TalTal" />
<input type="button" name="ok" id="ok" value="Ok" />
<br /><br />
<iframe id="grid" src="grid.html"></iframe>
<script type="text/javascript">
window.onload = function()
{
var grid = id('grid').contentWindow;
grid.escreve( id('tal').value );
id('ok').onclick = function(){
grid.escreve( id('tal').value );
}
}
function id( el ){
return document.getElementById( el );
}
</script>
e grid.html
<div id="ae"></div>
<script type="text/javascript">
function escreve( str ){
document.getElementById('ae').innerHTML = str;
}
</script>
Tente assim:
window.parent.document.getElementById('campo').value = id_proj; //linha 6
confirmando que o input tenha esse id="campo"