Renato Penna Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 Eu estou com esse erro no JavaScript. O código é esse...<?php $jobs = $cliente->exibirJobsCliente(); for($i=0;$i<sizeof($jobs);$i++) { if(isset($jobs["job"][$i])) { echo"<script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:visible'; } function esconder() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:hidden'; } </script>"; if($jobs["aviso"][$i]==1) $aviso = "Sim"; else $aviso = "Não"; $tam_desc = strlen($jobs["descricao"][$i]); $max_desc = $tam_desc - 3; $soma_desc = $max_desc - 4; echo"<tr height=50><td align='center' bgcolor='#FFFFFF'><font face='Verdana' size=3 color='#61A8DC'><b>".$jobs["nome"][$i]."</b></font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Descrição: ".substr($jobs["descricao"][$i],3,$soma_desc)."</font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Responsável: ".$jobs["nome_responsavel"][$i]."</font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>E-mail: ".$jobs["email"][$i]."</font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Cor: ".$jobs["cor"][$i]."</font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Tipos: ".$jobs["tipos"][$i]."</font></td></tr>"; echo"<tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Aviso: ".$aviso."</font></td></tr>"; echo"<tr height=35> <td align='center'> <img src='imagens/ic_comente.gif'> <font face='Verdana' size=1> <a href='comentario.php?projeto=".$_GET['projeto']."&job=".$jobs["job"][$i]."'>Comente (".$cliente->quantidadeComentarios($jobs["job"][$i]).")</a></font> <input type='checkbox' name='aceite".$jobs["job"][$i]."' "; $aceito = $cliente->verificarAceitacaoJob($jobs["job"][$i]); if($aceito==1) echo"checked"; echo" onclick='java script:window.location.replace(\"detalhes_projeto.php?projeto=".$_GET["projeto"]."&job=".$jobs["job"][$i]."&aceito=".$aceito."\");'> <font face='Verdana' size=1 color='#000000'>Aceitar job</font> <img src='imagens/seta.jpg' border = 0> <font face='Verdana' size=2><a href='#' onclick='mostrar();'>upload</a></font><BR><BR> <div id='upload".$jobs["job"][$i]."'><iframe src='uploads.php?projeto=".$_GET["projeto"]."' width=600 height=300></iframe></div> </td> </td></tr>"; } } ?>Alguém sabe me dizer o porquê desse erro ? Desde já agradeço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 Posta aí como fica a saída em JavaScriptExecuta a página, vê o código-fonte e posta aqui ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 (editado) Pelo nome do erro, parece que está usando IE, e isso elimita um debugg decente...Substitua o:echo" <script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:visible'; } function esconder() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:hidden'; } </script> "; por echo" <script language='JavaScript'> function mostrar() { alert(document.formulario.getElementById('upload".$jobs['job'][$i]."')); document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:visible'; } function esconder() { alert(document.formulario.getElementById('upload".$jobs['job'][$i]."')); document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:hidden'; } </script> "; Se o alert retornar undefined, é porque o elemento não existe. Se retornar algo como objectalgumacoisa, então a função não deve estar legal. Nesse caso, tente mudar: .style='visibility:visible'; por .style.display='block'; e .style='visibility:hidden'; por .style.display='none';Ps: você percebeu que está definindo a função novamente pra CADA 'job' desse seu loop, e só a última que teoricamente vai funcionar? Editado Fevereiro 20, 2009 por fiote Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Fevereiro 20, 2009 Autor Denunciar Share Postado Fevereiro 20, 2009 (editado) Fica uma coisa monstruosa cara...<script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload1').style='visibility:visible'; } function esconder() { document.formulario.getElementById('upload1').style='visibility:hidden'; } </script><tr height=50><td align='center' bgcolor='#FFFFFF'><font face='Verdana' size=3 color='#61A8DC'><b>Website Objetiva</b></font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Descrição: Prepare-se...</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Responsável: Jason</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>E-mail: jason@sextafeira13.com</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Cor: vermelho</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Tipos: uauuhauhauhuhauha</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Aviso: Sim</font></td></tr><tr height=35> <td align='center'> <img src='imagens/ic_comente.gif'> <font face='Verdana' size=1> <a href='comentario.php?projeto=1&job=1'>Comente (1)</a></font> <input type='checkbox' name='aceite1' onclick='java script:window.location.replace("detalhes_projeto.php?projeto=1&job=1&aceito=0");'> <font face='Verdana' size=1 color='#000000'>Aceitar job</font> <img src='imagens/seta.jpg' border = 0> <font face='Verdana' size=2><a href='#' onclick='mostrar();'>upload</a></font><BR><BR> <div id='upload1'><iframe src='uploads.php?projeto=1' width=600 height=300></iframe></div> </td> </td></tr> ========================================================================================================= <script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload2').style='visibility:visible'; } function esconder() { document.formulario.getElementById('upload2').style='visibility:hidden'; } </script><tr height=50><td align='center' bgcolor='#FFFFFF'><font face='Verdana' size=3 color='#61A8DC'><b>Website Objetiva</b></font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Descrição: Você ainda não viu nada...</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Responsável: Renato</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>E-mail: renato@sabado14.com.br</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Cor: vermelho</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Tipos: Você acha que o Jason é terrível ?</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Aviso: Sim</font></td></tr><tr height=35> <td align='center'> <img src='imagens/ic_comente.gif'> <font face='Verdana' size=1> <a href='comentario.php?projeto=1&job=2'>Comente (2)</a></font> <input type='checkbox' name='aceite2' onclick='java script:window.location.replace("detalhes_projeto.php?projeto=1&job=2&aceito=0");'> <font face='Verdana' size=1 color='#000000'>Aceitar job</font> <img src='imagens/seta.jpg' border = 0> <font face='Verdana' size=2><a href='#' onclick='mostrar();'>upload</a></font><BR><BR> <div id='upload2'><iframe src='uploads.php?projeto=1' width=600 height=300></iframe></div> </td> </td></tr> ========================================================================================================= <script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload3').style='visibility:visible'; } function esconder() { document.formulario.getElementById('upload3').style='visibility:hidden'; } </script><tr height=50><td align='center' bgcolor='#FFFFFF'><font face='Verdana' size=3 color='#61A8DC'><b>Website Objetiva</b></font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Descrição: guiwer weri weri itfg</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Responsável: ero re uyer uiero yerio</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>E-mail: hnjkhiohihteirtgeior</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Cor: azul</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Tipos: rtoherothphrwdgkrherio</font></td></tr><tr height=35><td><font face='Verdana' size=2 color='#000000' size=3>Aviso: Sim</font></td></tr><tr height=35> <td align='center'> <img src='imagens/ic_comente.gif'> <font face='Verdana' size=1> <a href='comentario.php?projeto=1&job=3'>Comente (2)</a></font> <input type='checkbox' name='aceite3' onclick='java script:window.location.replace("detalhes_projeto.php?projeto=1&job=3&aceito=0");'> <font face='Verdana' size=1 color='#000000'>Aceitar job</font> <img src='imagens/seta.jpg' border = 0> <font face='Verdana' size=2><a href='#' onclick='mostrar();'>upload</a></font><BR><BR> <div id='upload3'><iframe src='uploads.php?projeto=1' width=600 height=300></iframe></div> </td> </td></tr> Editado Fevereiro 20, 2009 por Renato Penna Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 Como eu falei, você está definindo a mesma função 3 vezes, isso não tá certo. Só vai funcionar pra última.Deu pra perceber que o ID tá certo. Faz oque eu falei no final (de alterar o style). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Fevereiro 20, 2009 Autor Denunciar Share Postado Fevereiro 20, 2009 Ficou assim...echo"<script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:block'; } function esconder() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style='visibility:none'; } </script>";Mas ainda está dando o erro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 Não foi isso que eu postei...é .style.display='block';e não .style='visibility:block'; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Fevereiro 20, 2009 Autor Denunciar Share Postado Fevereiro 20, 2009 Continua dando o mesmo erro cara...echo"<script language='JavaScript'> function mostrar() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style.display='block'; } function esconder() { document.formulario.getElementById('upload".$jobs['job'][$i]."').style.display='none'; } </script>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 (editado) Gezz ><Ao invés de document.formulario.getElementById, use document.getElementById. Editado Fevereiro 20, 2009 por fiote Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Fevereiro 20, 2009 Autor Denunciar Share Postado Fevereiro 20, 2009 Ótimo, não deu erro... mas também não funcionou :( O iframe que está dentro da div "upload" não desaparece quando a página carrega. Tentei resolver colocando o id="upload" no iframe mas não desapareceu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fiote Postado Fevereiro 20, 2009 Denunciar Share Postado Fevereiro 20, 2009 Você já resolveu o problema com o repetimento de funções?Se não, vou te ajudar. Não acho que o problema seja esse, mas vai saber...Lá no seu código PHP, aonde tem a parte:<a href='#' onclick='mostrar();'>upload</a> Mude para: <a href='#' onclick='mostrar(".$jobs["job"][$i].");'>upload</a> Agora jogue a parte do javascript para FORA do seu loop for. Além disso você precisa dar uma mudada nela, já que agora ele recebe um parâmetro. <script> function mostrar(Id_Upload) { document.getElementById('upload'+Id_Upload).style.display = 'block'; } </script>Fazendo a mesma coisa pra função esconder, lógico. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Renato Penna
Eu estou com esse erro no JavaScript. O código é esse...
Alguém sabe me dizer o porquê desse erro ? Desde já agradeço.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.