Page 1 sur 1
Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 10:59
par Tony001
Bonjour,
Je suis en train de réaliser une page php dans laquelle j'affiche la liste des régions, départements, villes dans trois listes de choix (<select>) liées : lorsque je choisi une région apparaissent les départements et les villes de la région dans les listes de choix multiples respectives.
A chaque clic sur une des lignes des listes de choix, la page est rafraichie pour que d'une part les dépendances soient respectées et que la base de données soit renseignée des choix en temps réel.
Tout se passe très bien, techniquement, mais visuellement, je fais face à un problème. A chaque rafraichissement de la page, l'affichage des lignes dans les listes de choix est désorganisée pour, il me semble mettre la dernière ligne sélectionnée en début de liste visible. J'aimerai pouvoir reafficher la liste de choix dans l'état ou elle était lors du clic pour ne pas déstabiliser l'utilisateur.
J'ai recherché un attribut javascript qui pourrait me donner cet information et me permettre de gérer l'affichage de mes listes de choix, mais je n'ai pas trouvé.
Ma question :
Avez-vous une solution pour résoudre ce problème ?
Cordialement,
Tony
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 11:17
par Mazarini
De façon analogue à l'envoi de la ligne sélectionnée, il faudrait que tu envoies le premier élément de ta liste pour le prendre en compte lors de l'affichage suivant au lieu de te baser sur la ligne sélectionnée.
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 11:52
par Tony001
De façon analogue à l'envoi de la ligne sélectionnée, il faudrait que tu envoies le premier élément de ta liste pour le prendre en compte lors de l'affichage suivant au lieu de te baser sur la ligne sélectionnée.
Effectivement. Avez-vous une solution pour déterminer quelle est la première ligne visible dans la liste de choix ?
Cordialement,
Tony
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 12:19
par Mazarini
Normalement tu le sais lorsque tu affiches la liste ou lorsque tu fais le select.
Si tu utilise un formulaire, tu ajoutes un input de type hidden et si tu utilises un lien tu l'ajoutes dans les paramètres.
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 12:22
par moogli
utiliser un select avec un order by pour avoir toujours la même liste.
lors de l'affichage du select une condition (if) pour pré sélectionner.
la liste sera toujours dans le même sens et l'élément visible sera celui sélectionné avant.
@+
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 12:54
par Tony001
utiliser un select avec un order by pour avoir toujours la même liste.
lors de l'affichage du select une condition (if) pour pré sélectionner.
la liste sera toujours dans le même sens et l'élément visible sera celui sélectionné avant.
@+
Désolé, je n'avais pas été suffisamment clair dans mon explication. En fait c'est un <select> à choix multiple dont le "size" est fixé à 5 ou 10. Lorsque je fais un choix multiple, le premier à être affiché est, il me semble le premier élément déjà sélectionné dans la liste (et pas le dernier qui vient d'être sélectionné par l'utilisateur). La requête dans la base de donnée est déjà ordonnée "order by", ce qui me gène, c'est que je voudrais que la liste entre deux rafraichissement ne modifie pas les 5 ou 10 éléments visibles dans sa zone d'affichage (dites moi si vous avez besoin de plus d'éclaircissement).
Cordialement,
Tony
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 13:53
par Mazarini
Bonjour,
Il y a une propriété "scrollTop". Tu peux en mettre la valeur dans une input hidden lors de l'appel à la page PHP et réaffecter cette valeur lorsque la page en réponse est chargé.
Edit : Pour tester le principe met en fin de page :
<script>
document.getElementById('?????').scrollTop = 100;
</script>
Re: Raffraichissement d'une liste de choix
Posté : 22 sept. 2011, 22:29
par Tony001
Bonjour,
Il y a une propriété "scrollTop". Tu peux en mettre la valeur dans une input hidden lors de l'appel à la page PHP et réaffecter cette valeur lorsque la page en réponse est chargé.
Edit : Pour tester le principe met en fin de page :
<script>
document.getElementById('?????').scrollTop = 100;
</script>
Voilà l'information que j'attendais. J'ai mis en place cette astuce. Je teste demain et je vous tiens au courant. Merci.
Très cordialement,
Tony
Re: Raffraichissement d'une liste de choix
Posté : 23 sept. 2011, 09:25
par Tony001
Bonjour,
Il y a une propriété "scrollTop". Tu peux en mettre la valeur dans une input hidden lors de l'appel à la page PHP et réaffecter cette valeur lorsque la page en réponse est chargé.
Edit : Pour tester le principe met en fin de page :
<script>
document.getElementById('?????').scrollTop = 100;
</script>
Voilà l'information que j'attendais. J'ai mis en place cette astuce. Je teste demain et je vous tiens au courant. Merci.
Très cordialement,
Tony
Testé et fonctionnel. Merci de vos réponses.
Très cordialement,
Tony
Re: Raffraichissement d'une liste de choix
Posté : 23 sept. 2011, 10:15
par Mazarini
Pour info, je suis nul en javascript et je ne connaissais pas cette propriété avant de regarder sur google les propriétés des select