|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 31 ![]() |
Bonjour,
J'ai une page avec un formulaire (une dixaine de champs textes, menu déroulants, etc, etc). Quand je soumets ce formulaire j'envoie tout sur une autre page (process.php) qui va dans un premier temps controler si ce qui a été saisie dans le formulaire précédent est correct. En cas d'erreur, j'enregistre le message a afficher dans une variable ($mess_erreur) et je rappel ma page de formulaire en faisant un: include("page_formulaire.php"); exit; Mon problème n'est pas vraiment dans le fait d'afficher les messages d'erreur mais plutot de se placer à un endroit précis quand je rappel ma page formulaire en cas d'erreur. Je m'explique. Sur la page des formulaire, il y a beaucoup de champs textes, menu déroulant, bouton radio, etc, etc. En cas d'erreur, j'aimerai que lorsque je rappel la page des formulaire (via include), on se retrouve directement au niveau du champs qui pose problème et non pas en haut de la page. Je prends un exemple avec par exemple le dernier champ texte (complètement en bas de la page). Si il y a une erreur sur ce champs, après avoir valider le formulaire, la page va donc être rechargé en indiquant qu'il y a une erreur. Par contre je vais me retrouver en haut de page alors que le champs en question est complètement en bas de page. J'espère avoir été assez clair dans mes explications (pas simple à expliquer). Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Directeur technique Inscription : septembre 2006 Messages : 5 959 ![]() |
Il y a surement 2 solutions dont une trop dure a mettre en place :
- html avec des ancres (la solution assez difficile a gerer a travers les includes etc ...) - Le focus en javascript (la plus simple a mon avis par contre je vais pas etre tres util dans ce domaine lol) |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() |
Aucun problème avec des balise A et des attributs NAME placés devant chaque champ de formulaire qui portent le même nom:
<a name='city'> <select name='city'> . . . Lorsque tu construis l'erreur, ajoute l'ancre à la page page_formulaire.php: page_formulaire.php#city Le browser se charge lui-même de placer ce champ en haut du viewport de l'utilisateur. |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 31 ![]() |
Je connais le principe mais je ne pensais pas qu'on pouvais ajouter l'ancre dans le cadre d'un include..
J'essais. Merci |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
La solution du focus avec JS est bien plus ergonomique, le curseur de l'utilisateur se trouvant pile poil sur le champ à modifier.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#6 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 31 ![]() |
C'est bien ce qu'il me semblait ca ne fonctionne pas.
Si je fais: include("page_formulaire.php#city"); je recupère un message d'erreur: Warning: main(page_formulaire.php#city): failed to open stream: No such file or directory in........... J'avais déjà essayé.. Ca aurai fonctionné si j'avais fait un header: header("location: page_formulaire.php#city"); Le problème c'est qu'en faisant un header, je ne récupère pas ce qui a été saisi dans les différents champs du formulaire précédement. Citation:
|
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Pareil je connais pas trop JS ça doit être un truc du style
Code :
document.getElementById('nom_du_champ').focus();
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 31 ![]() |
J'essais.
Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com