Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Mostrar/Ocultar un div con Xajax

Estas en el tema de Mostrar/Ocultar un div con Xajax en el foro de Frameworks JS en Foros del Web. Hola compañeros, llevo años programando en PHP y la verdad es que me cuesta bastante esto del Ajax y el Javascript, por eso pido disculpas ...
  #1 (permalink)  
Antiguo 17/07/2007, 14:24
 
Fecha de Ingreso: junio-2006
Mensajes: 12
Antigüedad: 17 años, 10 meses
Puntos: 0
Mostrar/Ocultar un div con Xajax

Hola compañeros, llevo años programando en PHP y la verdad es que me cuesta bastante esto del Ajax y el Javascript, por eso pido disculpas por si mi pregunta es bastante tonta.

Os cuento: Tengo una página en php, y quiero que al pinchar en una imagen, cargue en un <div> un determinado contenido con xajax. Hasta ahí se hacerlo, el problema es que quiero es que al pinchar en la misma imagen (sería digamos la imagen que encabeza el div), el contenido del div se limpie y desaparezca.

Por ejemplo:

Primero haria en php todos los pasos necesarios para declarar la variable $xajax, registrar la funcion, etc...

Código HTML:
<tr><td style="cursor:pointer" colspan="2">        		
    <img src="graficos/cabecera.jpg" onclick="xajax_mifuncion()"></img> </td></tr>
<tr><td colspan="2">        		
     <div id="contenido"></div>
</td></tr> 
Antes de esto he declarado la funcion en php:
Código PHP:
function mifuncion() {
        
    
$texto "Contenido que apareceria dentro de la etiqueta div";                                 
    
//instanciamos el objeto para generar la respuesta con ajax
    
$respuesta = new xajaxResponse();      
    
    
//escribimos en la capa con id="contenido" el texto que aparece en $salida    
    
$respuesta->addAssign("contenido","innerHTML",$texto);    
    
    
//tenemos que devolver la instanciación del objeto xajaxResponse
    
return $respuesta

Básicamente esto es lo que tengo, que muestra el contenido al pinchar en la imagen. Mi pregunta es: ¿Que es lo que tendria que hacer en mifuncion() para comprobar si "contenido" tiene algo y en funcion de eso llamar a rellenar o limpiar?

Seria hacer algo asi:
Código PHP:
    // Si contenido esta vacio
    
$respuesta->addAssign("contenido","innerHTML",$texto);    
    
// En caso contrario
    
$respuesta->addClear("contenido","innerHTML"

Espero que algun entendido en xajax pueda darme una solucion ya que llevo dos dias dandole vueltas y no se me ocurre, y seguro que es una tonteria.

Saludos
  #2 (permalink)  
Antiguo 17/07/2007, 15:52
 
Fecha de Ingreso: junio-2006
Mensajes: 12
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Mostrar/Ocultar un div con Xajax

Bueno, al final me lo he resuelto yo mismo de una forma un poco chapucera. He declarado la siguiente funcion javascript al principio:

Código:
	<script>
		function mifuncion() {
			if ( ((document.getElementById("contenido").innerHTML.length)==0) || (document.getElementById("contenido").style.display=="none")) {			 						
				xajax_mifuncion();
				document.getElementById("contenido").style.display="";
			}
			else 
				document.getElementById("contenido").style.display="none";							
		}
	</script>
Esta funcion sera la que llame al hacer onClick en la imagen. De esta forma se comprueba si el contenido tiene algo (o si se encuentra oculto) y llamará a la funcion xajax_mifuncion (que en realidad es la funcion PHP que puse antes). Y en caso de que "contenido" tenga cualquier cosa pues se oculta y listo.

Si alguien tiene una solucion más elegante (que la habrá), pues adelante.
  #3 (permalink)  
Antiguo 17/07/2007, 17:02
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Re: Mostrar/Ocultar un div con Xajax

en lugar de poner esto

document.getElementById("contenido").style.display ="";

pon esto

document.getElementById("contenido").style.display ="block";

have funnnnnnnn
  #4 (permalink)  
Antiguo 28/08/2007, 06:10
 
Fecha de Ingreso: octubre-2006
Mensajes: 32
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Mostrar/Ocultar un div con Xajax

abria algo asi para limpiar el div?
tengo un div donde cargo las noticias o algun contenido, quuiero que al pinchar en una imagen ese div se limpien, ahora lo tengo con lo de contraer/expandir, pero si se deja contraido y se pincha en el enlace carga el contenido con el div oculto.
lo que quiero es que solo limpie el div, pero no lo oculte...
es posible hacer esto?
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 05:16.