Foros del Web » Programando para Internet » PHP »

Al recargar la página sube el scroll ¿Por qué?

Estas en el tema de Al recargar la página sube el scroll ¿Por qué? en el foro de PHP en Foros del Web. Hola a todos, amigos. Me surgió un problema bastante tonto pero molesto. No sé por qué, al pulsar unos botones que envían diferentes variables, cuando ...
  #1 (permalink)  
Antiguo 13/11/2010, 23:50
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Al recargar la página sube el scroll ¿Por qué?

Hola a todos, amigos. Me surgió un problema bastante tonto pero molesto.
No sé por qué, al pulsar unos botones que envían diferentes variables, cuando la página recarga con la nueva información (que envía a la misma página con
Código PHP:
<?php echo $_SERVER['PHP_SELF']; ?>
) el scroll sube hasta el principio.
Lo que me gustaría saber es: como mantengo al recargar la posición de la página.
Muchas gracias a todos por adelantado.
  #2 (permalink)  
Antiguo 15/11/2010, 07:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Al recargar la página sube el scroll ¿Por qué?

Podrías usar AJAX para hacer la petición y no se recargue la página o usar un ancla y que vuelva a colocarlo donde estaba.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/11/2010, 22:35
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Al recargar la página sube el scroll ¿Por qué?

Cita:
Iniciado por abimaelrc Ver Mensaje
Podrías usar AJAX para hacer la petición y no se recargue la página o usar un ancla y que vuelva a colocarlo donde estaba.
De momento no me manejo con Ajax, aunque creo que para muchas cosas es de lo más útil. Probaré lo del ancla. MUCHAS GRACIAS!
  #4 (permalink)  
Antiguo 15/11/2010, 23:17
 
Fecha de Ingreso: junio-2010
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Al recargar la página sube el scroll ¿Por qué?

No conseguí hacer funcionar el posicionamiento que deseaba con el ancla.
Si alguien puede echarme una mano, el tema es:

Tengo este formulario al principio de la página:

Código HTML:
<form name="input" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Separa por comas cada tarea y el nombre de cada compa&ntilde;ero.

      <br/>

Tareas a realizar<input type="text" name="tareas"
value="<?php if (isset($_POST['tareas'])) echo $_POST['tareas'];?>"/>

     <br/>

Nombre de los compa&ntilde;eros 
<input type="text" name="inquilinos" 
value="<?php if (isset($_POST['inquilinos'])) echo $_POST['inquilinos'];?>" />
      <br/>

<input type="submit" value="Enviar" /></form> 

Tras enviarse, genera unos botones que se crean tras una tabla (un planning) generado por una función php.
Los botones generados son estos:

Código PHP:
<?php

 
function botones_tareas($tareas,$realizado)

{
if(isset(
$_POST['tareas']))
{


if(empty(
$realizado)){
$realizado= array();

}

 for (
$index=0$index<count($tareas);$index++)
    
        {
        
        echo 
'<ul class="gallery"><li>';
        if(
in_array($tareas[$index],$realizado)){
        
//limpiaValores($realizado);
        
echo '<img src="comparto_las_tareas_de_piso_compartido.jpg"/>';
        }
        else{
            echo 
'<img src="no_comparto_las_tareas_de_piso_compartido.jpg"/>';
        }
        echo 
"<br/>";
        echo 
$tareas[$index];
        echo 
"<br/>";
        echo 
'<form name="input" action="';?>
        <?php echo $_SERVER['PHP_SELF']; ?>
        <?php
        
echo '"';         
        
//echo "\n";
        
echo 'method="POST">';

echo 
'<input type="hidden" name="tareas" value="'.limpiaValores2($_POST['tareas']).'"/>
<input type="hidden" name="inquilinos" value="'
.$_POST['inquilinos'].'" />
<input type="hidden" name="realizado" value="'
.implode(",",$realizado).'" />
<input type="hidden" name="terminado" value="'
.$tareas[$index].'" />';
        
        
        echo 
'<input type="submit"'
        echo 
'name="';
        
//pone el nombre del inquilino en el campo name del form
        
echo $tareas[$index];
        echo 
'"';
        if(
in_array($tareas[$index],$realizado)){
        echo 
'value="Aun no lo he hecho" />';
        }
        else{
            echo 
'value="Lo he hecho" />';
        }
        echo 
'</form>';
        echo 
"</li>";
        echo 
"</ul>";}
        }
        
?>
Cada vez que lo envío (los botones como he dicho está abajo de la página), al recargase, la página vuelve arriba.
He probado poniendo anclas dentro de los formularios, pero no me ha dado resultado.
De nuevo, gracias por vuestra paciencia y vuestra ayuda. Un saludo.
  #5 (permalink)  
Antiguo 16/11/2010, 01:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años
Puntos: 4
De acuerdo Respuesta: Al recargar la página sube el scroll ¿Por qué?

Yo combino PHP con JAvascript, ya que tampoco se manejar ajax, jeje por ahora.
Tal vez esto te ayude:

//Dentro del head colocamos el siguiente codigo
Código PHP:
<?php if (isset ($_POST['nombre']))
echo 
'<script language="JavaScript"> 
document.location.href = "#contactando";
</script>'
?>
</head>
//Con lo anterior, solo se activa el codigo javascript si se han mandado datos de //formulario.

//Luego pones el ancla donde quieras.
Código HTML:
<h1> <a name="contactando">Sitio Web Demo</a></h1> 


Suerte.

Si tienes algun problema puedes mandarme un mp.
  #6 (permalink)  
Antiguo 02/07/2011, 20:56
 
Fecha de Ingreso: mayo-2011
Ubicación: aqp
Mensajes: 52
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Al recargar la página sube el scroll ¿Por qué?

puedes ayudarme con esto amigo


poner un ancla en este boton ya que esta dentro de un formulario:
<form>
<input type="submit" name="boton_comentar" id="boton_comentar" value="Comentar esta Web " />
</form>

ya he creado un ancla en la misma pagina llamado:
<a name="vamosacomentarios" id="vamosacomentarios"></a>

Etiquetas: recargar, scroll
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 14:28.