Comunidad de diseño web y desarrollo en internet online

Anclaje exacto

Citar            
MensajeEscrito el 20 Feb 2008 03:10 pm
Hola a todos!!!!!
Me estoy metiendo en PHP y Javascript y tengo un problema.
Tengo una pagina que puede ser muy larga (dependiendo de las variables que tome el PHP y de su respectiva consulta mysql . Entonces yo quiero que suceda lo siguiente: si estoy en la mitad de la pagina y envio una variable a php la cual me refresca la pagina (y probablemente me la haga muuuucho mas larga), no quiero empezar a navegarla de vuelta desde el principio, ya que , como es mucha informacion me confundo y no se a donde estaba antes de que se refresque.Se entiende?
Es decir, necesito anclar la pagina en logar exacto en el que estaba antes de ser refrescada.
Con el anclaje clasico de html realmente me resultaria bastante tedioso hacerlo ya que son muchas paginas y muchas opciones.
Alguien conoce alguna funcion de javascript o algo que me solucione el problema????
Me imagino que seria algo asi como que javascript tome el lugar del scrollbar antes de refrescar y despues lo vuelva a tomar, no se.
O tal vez con una cookie de php, no se.
Gracias a todos!!!!!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Feb 2008 04:44 pm
mmmm...
si usas AJAX, no es necesario refrescar la página.

¿con qué dato harías el "refresco"?
¿cuál es el objeto de esos... "refrescos"?

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 20 Feb 2008 05:30 pm
Gracias por la respuesta!
Bueno, en AJAX me imagine que se podia, pero no lo manejo.
la cosa es asi: es un formulario con muchos campos, digamos unos 10 y con un boton al final el cual envia las variables a si misma (a la misma pagina) y, segun lo que se haya cargado en los campos superiores, abajo del formulario se generan una serie de tablas que pueden ser muy largas. Ademas, estas tablas nuevas tambien son formularios que pueden llamar a otras tablas. Entonces lo que necesito es que cuando se refresque enviando estas variables la pagina se ancle en donde estaba antes.
Se entiendo un poco mas?????
Si tienes la solucion con AJAX y no es muy dificil, pues la acepto y lo intento con ella
Saludos!!!!!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Feb 2008 05:48 pm
Veamos...
El AJAX no es mi fuerte... pero no le veo mucho problema... Consulta los tutoriales de Cristalab, y encontrarás en ellos mucha ayuda al respecto.
(La idea, es que con AJAX, podrás cargar sólo las partes directamente involucradas, y no toda la página, ahorrándote de paso, el consiguiente ancho de banda...)

Si lo quisieras hacer "a pelo", con javascript... lo primero es saber... si es un sólo formulario, o son varios.
En principio, se me ocurre que deberían ser tantos, como posibles acciones a realizar (aunque no entiendo muy bien la estructura de lo que dices, y quizá sería mejor que pusieras una URL para verlo)
De esta manera, podrías compartimentar mediante
<div id="posición_1">
, y que el formulario fuera...
<form action="#posicion_1">

ejemplo:
<form method="get" action="#posicion_1">
<div id="posicion_1"><input type="submit" value="enviar" nombre="enviar" /></div>
</form>
<form method="get" action="#posicion_2">
<div id="posicion_2"><input type="submit" value="enviar" nombre="enviar" /></div>
</form>
<form method="get" action="#posicion_3">
<div id="posicion_3"><input type="submit" value="enviar" nombre="enviar" /></div>
</form>

De esta manera, cuando envíes el formulario, cargará en sí mismo, y te llevará a la posición del mismo formulario.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 20 Feb 2008 06:06 pm
Buenisimo, muchas gracias!!!!
Este sistema que me mencionas con las etiquetas DIV es justamente el que quiero evitar. Esa seria una solucion posible, pero algo tediosa ya que son varios formularios y la posibilidad de error es alta.
Esta bien, no se, me imaginaba que existia alguna funcion de javascript o o lo que sea te tomara primero el "eje y" del scrollbar del navegador, refrescara la pagina y llevara el scrollbar a esa posicion anteriormente obtenida.
No te voy a poder mostrar el sitio, ya que es para una intranet y esta todo programado para que funcione en el localhost y no en internet.
De cualquier manera podes ver un claro ejemplo de lo que necesito en www.clarin.com . Si estas mirando el sitio unos minutos, este se actualiza automaticamente, te muestra el comienzo de la pagina un instante y te lleva automaticamente a donde estabas lleyendo antes de que se autorefrescara.
He hecho algunas comprobaciones, como por ejemplo: espero a que se refresque la pagina mirando un lugar, esta se refresca y me lleva al lugar exacto donde estaba. Luego bajo muy poquito y vuelvo a esperar a que se autorefresque. Al refrescarse sucede nuevamente lo mismo, me lleva al lugar exacto en el que estaba.
A lo que me refiero con esto es que www.clarin.com seguramente no utiliza el sistema tradicional de anclaje, ancla la pagina de otra forma y no se cual es.
Ojala me puedas ayudar, igualmente muchas gracias!!!!!!!!!!!!!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Feb 2008 08:34 pm
que sean muchos divs, no es problema... pues bien se podría automatizar con el php que genera todos los formularios.
(seguro que tienen un id... con lo que bien se podría adaptar ese mismo ID, así que no sería algo generado por el programador, sino por el servidor)

Por lo demás... el scroll se regula desde javascript con:
Mozilla-Netscape:
window.pageYOffset
IExplorer
document.body.scrollHeight


Podrías mandarlo por GET, y recuperarlo luego desde javascript con:
location.search


Aún así, te recomiendo no usar javascript para esto.
Veo más interesante generar automáticamente los divs (que además te pueden servir para formatear los diferentes formularios, incluso con atributos ":hover"), y acceder a ellos como si fueran "anclas" href="#posición_1" (lo cual puede serte útil incluso para llegar a ellos desde favoritos)


** NOTA: no hacen falta siquiera un <div>. Lo importante es el "id", que puede estar en el mismo formulario: <form id="posicion_1" action="#posicion1">

(desde PHP podría hacerse automáticamente algo así: )
<?php $id=0; ?>
<form id="<?php $id++; echo 'posicion_'.$id; ?>" action="#<?php echo 'posicion_'.$id; ?>">formulario 1</form>
<form id="<?php $id++; echo 'posicion_'.$id; ?>" action="#<?php echo 'posicion_'.$id; ?>">formulario 2</form>
<form id="<?php $id++; echo 'posicion_'.$id; ?>" action="#<?php echo 'posicion_'.$id; ?>">formulario 3</form>

Así el PHP genera las anclas, y el programador no tiene que preocuparse de nada más...
:)

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 21 Feb 2008 11:28 am
Buenisimo chaval!!!!!!!!!!!!!!!!!!!!!!!!!
Mil gracias por la respuesta
Hoy o mañana estoy probando estas cosas y te cuento!!!
Saludos!

Por pabletein

86 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.