2009-07-06 7 views
2

Après avoir envoyé un formulaire, la position retournera en haut de la fenêtre. Au lieu d'aller à la position précédente.retour bouton position de défilement

En regardant à l'aide de scrolltop pour remémorer la positon ou avez-vous une meilleure idée? J'utilise des choses comme PHP5, jQuery et MySQL.

+0

Qu'est-ce que l'apparence de forme comme et comment voulez-vous soumettre? Est-ce que vous faites référence à un fragment ou un autre? – Gumbo

Répondre

1

Check this out:

<script type="text/javascript" src="der/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="der/jquery.cookie.js"></script> 
<script type="text/javascript"> 
function get_position(){ 
    var top_position = document.documentElement.scrollTop; 
    $.cookie('pos', top_position); 
}; 
function set_position(){ 
    var top_position = $.cookie('pos'); 
    window.scrollTo(0,top_position) 
    $.cookie('pos', null); 
}; 
</script> 
</head> 
<body onload="set_position();"> 
. 
. 
. 
<form method="post" action="" onsubmit="return get_position();"> 
</form> 
0

Si vous soumettez votre formulaire via Ajax, il ne changera rien (peut-être que c'est une option, si vous redirigez vers la même page de toute façon). Vous pouvez également enregistrer la position dans un cookie via JavaScript avant de l'envoyer et de l'extraire et définir la valeur lors du chargement de la nouvelle page (par exemple, avec jQuery scrollTo). Ou vous venez de définir une ancre dans votre champ Form (qui est très probablement la dernière position à laquelle l'utilisateur a fait défiler) et revenir au formulaire après l'envoi.

1

Créez d'abord une ancre dans votre page à laquelle vous voulez que le visiteur se rende lorsqu'il envoie le formulaire.

Ensuite, dans votre action de formulaire ou rediriger le point de déposer auprès de l'ancre

par exemple

<div id="view_from_here" >..... 

puis

<form action="myfile.php#view_from_here" .... 
Questions connexes