Foros del Web » Programando para Internet » Javascript »

Mostrar / Ocultar include

Estas en el tema de Mostrar / Ocultar include en el foro de Javascript en Foros del Web. Pues ando liado con un codigo que no me funciona, este es: Código PHP: <script language="JavaScript"> function muestra_oculta(id){ if (document.getElementById){ //se obtiene el id var el = document.getElementById(id); //se define la variable "el" igual a nuestro div el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div } } window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente*/ muestra_oculta('contenido_a_mostrar');/* "contenido_a_mostrar" es el nombre que le dimos al DIV */ } </script><div id="contenido_a_mostrar"> ...
  #1 (permalink)  
Antiguo 18/09/2009, 09:45
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Mostrar / Ocultar include

Pues ando liado con un codigo que no me funciona, este es:
Código PHP:
<script language="JavaScript">

function muestra_oculta(id){
if (document.getElementById){ //se obtiene el id
var el = document.getElementById(id); //se define la variable "el" igual a nuestro div
el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
}
}
window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente*/
muestra_oculta('contenido_a_mostrar');/* "contenido_a_mostrar" es el nombre que le dimos al DIV */
}
</script><div id="contenido_a_mostrar"><?php
        
include "templates/$skin/forum_right.php";
?></div>
<input type="button" onclick="muestra_oculta('contenido_a_mostrar')" value="Mostrar / Ocultar">
Como ven lo que se esconde es el forum_right o se aparece el ploblema es que se queda fijo, como lo hago para que desaparezca o se muestre?
  #2 (permalink)  
Antiguo 18/09/2009, 10:34
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: Mostrar / Ocultar include

totolia, tu problema no es de PHP, es una pregunta de Javascript. Quizás debieras pedirle a un moderador que mueva tu mensaje allá.

Por otro lado, mirando el código que estás utilizando, no veo de por si errores de sintaxis ( aunque no estoy comprobando exhaustivamente), asi que estimo que será un problema a la hora de cargar el javascript en la página (el window.onload) o un tema de compatibilidad de JS entre navegadores (no nos decís que navegador estás usando para las pruebas) o mismo que a la hora de ejecutar tu código, el elemento que querés ocultar no está cargado (menos probable, pero bueno, es para considerarlo).

Yo en lo general, cuando se trata de Javascript, utilizo la librería jQuery, que te facilita el trabajo con efectos y esas cosas en el lado del cliente. La manera en la que yo lo haría es asi:
Código HTML:
Ver original
  1. <!-- HTML -->
  2. <div id="contenido_a_mostrar">
  3. <?php include "templates/$skin/forum_right.php";?></div>
  4. <input type="button" id="swap" value="Mostrar / Ocultar">
  5.  
  6. <!-- Javscript -->
  7. $(function(){
  8.     $('#swap').toggle(function(){
  9.         $('#contenido_a_mostrar').show()
  10.     }, function(){
  11.         $('#contenido_a_mostrar').hide()
  12.     })
  13. });
Así de simple (siempre y cuando hayas cargado la librería jQuery de antemano, no olvides eso).

Suerte.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 18/09/2009, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar / Ocultar include

Tema trasladado desde PHP
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:35.