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

Ayuda con album de fotos dentro de <DIV>

Estas en el tema de Ayuda con album de fotos dentro de <DIV> en el foro de Frameworks JS en Foros del Web. que tal tengo un problema con enlaces a fotos dentro de un div. Esto va asi: estoy cargando varios html con solo texto en un ...
  #1 (permalink)  
Antiguo 14/12/2008, 13:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Exclamación Ayuda con album de fotos dentro de <DIV>

que tal tengo un problema con enlaces a fotos dentro de un div.

Esto va asi:
estoy cargando varios html con solo texto en un div mediante ajax y niun drama...

uso esto:

// JS Carga Asincrona de Archivos mediante AJAX
var peticion = false;
try {
//Crea el objeto XMLhttpRequest para navegadores Firefox, Safari u Opera
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 6 ó superior
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 5
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}

if (!peticion)
alert("ERROR AL INICIALIZAR!");

function loadContent(fragment_url, element_id, qs) {
//Se agrega random para saltar caché de AJAX
//alert(fragment_url);
var aleatorio= Math.random();
var element = document.getElementById(element_id);
//element.innerHTML = '<p><img src="hourglass.png" align="absmiddle" border="0" /><b> Cargando</b></p>';
//alert(fragment_url +'?id='+aleatorio+'&'+qs);
peticion.open("GET", fragment_url +'?id='+aleatorio+'&'+qs );
peticion.onreadystatechange = function() {

if (peticion.readyState == 4) {
element.innerHTML = peticion.responseText;
}
}
peticion.send(null);
}


el drama sucede cuando cargo un album de fotos (tambien en un html) de la misma forma, pero este album de fotos genera paginas, osea contiene enlaces Anterior y Siguiente a las distintas hojas del album con mas fotos, y el tema es que cuando actualizo el div con el album, carga la primera hoja del album con fotos en el div correctamente con sus enlaces Anterior y Siguiente, pero si puslo Siguiente me abandona la pagina principal con el div, es decir, no muestra la siguiente hoja del album dentro del div sino que se sale de la pagina donde tengo el div contenedor y me carga la segunda hoja del album como un html en la ventana completa.

la idea es que se sigan cargando las hojas del album dentro del div en la pagina principal, pero no he podido lograrlo.

los enlaces Anterior y Siguiente son de esta forma: 'catalogo_.php?offset=$offset'
las llamadas en la pag principal que traen los html al div contenedor son de esta forma:
(...)
onclick='loadContent(noticias.php, div_contenedor)'
onclick='loadContent(qsomos.php, div_contenedor)'
onclick='loadContent(catalogo.php, div_contenedor)'
(...)

Aguien tiene alguna idea de como hacer que esto me funcione?
si necesitaran mas detalles me dicen.

salu2
  #2 (permalink)  
Antiguo 14/12/2008, 13:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

Tendrias que quitar el link de los enlaces y reemplazarlo por una funcion como la que tienes que se llama loadContent() y le pasas el link con el offset.

Saludos.
  #3 (permalink)  
Antiguo 14/12/2008, 13:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

si lo hago, pero como esta en otro html, en ese html no existe la etiketa div con id=contenido, como en la pagina principal, entonces una forma como esta como dices tu:

<div onclick='loadContent('catalogo_.php?offset=$offset ','contenido');'>Siguiente</div>

en los enlaces del album solo hace que vuelva a pasar lo mismo (se carga el album en la ventana completa, ignorando la capa contenedora), porque dentro del album no existe la etiketa contenedora div. tambien pense eso, que podia direccionar Siguiente al div de la pag principal pero al parecer se comporta como un ente aparte :(
  #4 (permalink)  
Antiguo 14/12/2008, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

Mmm muy raro, te deberia de funcionar tal cual, ya que el contenido se inserta directo en el HTML padre por lo que si existe el div.

Revisa que no tengas otro div con el mismo id en tu segunda pagina.

Saludos.
  #5 (permalink)  
Antiguo 14/12/2008, 15:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

eso mismo es lo que me embarga, por que al revisar el codigo que el browser genera este se muestra estatico, me explico:

tengo un contenido por defecto cargado en el div de mi pag principal asi:

<td align=justify valign=top>
<div style="margin: 0 auto;
overflow: auto;
height: 300px;
width: 610px;" name="cont" id="contenido"><?include("qsomos.php");?></div></td>

qsomos.php solo tiene un parrafo <p>

si miro el codigo de la pagina aparece el parrafo en el lugar de <?include("qsomos.php");?> como es de esperarse.

pero al actualizar el div con los demas enlaces del sitio y que se muestran sin problemas, por ej:

<div id=ver_noticias onclick="loadContent('list_noticias.php','contenid o');">Noticias</div>

y luego miro el codigo fuente de la pagina, este siempre se muestra igual, o sea, con el contenido del parrafo de qsomos.php, aun teniendo vizualizado en el browser el div con el contenido de noticias, algo que no me esperaba.

entonces eso me da a entender que el contenido que actualizo en el div no se muestra como codigo solido, sino que se cambia en memoria o de alguna otra forma, lo que hace tal vez, que tu sugerencia no funcione y por eso pienso yo que el id=contenido no puede ser hallado cuando invoco Siguiente en el album con esta forma:

<div onclick='loadContent('catalogo_.php?offset=$offset ','contenido');'>Siguiente</div>

se entiende?
si se cargara en codigo como sucede con la funcion include de php, seguro que no habria problemas, pero eso no pasa :(
  #6 (permalink)  
Antiguo 14/12/2008, 15:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

Lo que pasa es que Javascript no puede modificar el codigo fuente HTML, cambia el codigo en memoria, por eso es recomendable si estas usando AJAX y Firefox uses la herramienta Firebug que te puede mostrar el html generado despues de AJAX.

Saludos.
  #7 (permalink)  
Antiguo 14/12/2008, 16:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

mmmmmm... a ver voy a ver eso y te cuento
gracias por la orientacion :)
  #8 (permalink)  
Antiguo 14/12/2008, 19:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

te cuento:

no conocia la herramienta firebug (soy un tanto novato en desarrollo web) esta exelentisima y me ha servido enormemente para hallar el error. eres bendito muchas gracias, porque ahora sí que las hojas del album se cargran en el mismo div como yo queria :)

mira el problema estaba en esta linea del script ajax

peticion.open("GET", fragment_url +'?id='+aleatorio+'&'+qs );

que genera una url de tipo catalogo_.php?id=0.467898765423 y que era lo que causaba el error, al consultar dicha id aleatoria decimal a la base de datos. el firebug es genial.

lo que me gustaria saber es lo siguiente: por ahi mas arriba en el script dice que se usa esa variable aleatoria para saltar la cache de AJAX.

tu sabrias decirme en que incide esto de saltar la cache AJAX?

porque para que la cosa funcionara la linea quedo de esta manera:

peticion.open("GET", fragment_url );

en que podria pejudicarme hacer esto?

un saludo
  #9 (permalink)  
Antiguo 14/12/2008, 21:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

El "cache de ajax" que dices no es mas que nada el cache del browser que cuando haces una peticion http checa si la tiene del cache y a veces regresa los mismos datos. Para que te sirva tu script te recomendaria dejar esa parte del aleatorio, solo cambia el id por algo que no uses por ejemplo:
Código javascript:
Ver original
  1. peticion.open("GET", fragment_url +'?__rand='+aleatorio+'&'+qs );

Saludos.
  #10 (permalink)  
Antiguo 14/12/2008, 22:39
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

si pongo algo como lo que tu dices, inmediatamente me arroja un error de este tipo

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\catalogo_.php on line 62

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\catalogo_.php on line 64

que podria hacer?
  #11 (permalink)  
Antiguo 15/12/2008, 09:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

Lo que pasa es que a como tienes programada tu clase, si te fijas acepta un parametro al final que es el query string.

Tendrias que hacer algo asi:
Código html:
Ver original
  1. <div onclick='loadContent('catalogo_.php','contenido', 'offset=$offset');'>Siguiente</div>

Saludos.
  #12 (permalink)  
Antiguo 15/12/2008, 12:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

mmm... ahora me funciono de maravillas con tu sugerencia, gracias gatorv.
pero por qué antes no me habia pedido ese tercer argumento? antes solo enviaba la url y el id del div.

ok, voy a crear otro hilo con otra duda que tengo por aki

me has sido de mucha ayuda gracias :)
  #13 (permalink)  
Antiguo 15/12/2008, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Ayuda con album de fotos dentro de <DIV>

Pues porque es opcional, asi es Javascript si tu omites un argumento va a pasar null por defecto.

Saludos.
  #14 (permalink)  
Antiguo 15/12/2008, 13:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 121
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con album de fotos dentro de <DIV>

tienes razon gatorv...

te agradezco tu ayuda, luego aparezco con otra duda por aca.

un saludo
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 01:53.