passage d'un champ saisie dans l'url (sans submit) - HTML/CSS - Programmation
Marsh Posté le 08-06-2005 à 14:53:21
et si ton client a désactivé JS?
Pourquoi ne pas tout simplement faire valider le formulaire, faire les vérifs en PHP et revenir sur le formulaire si y a des erreurs, en mettant les valeurs des champs posant problème en rouge par exemple.
Cette solution est invisible pour l'utilisateur si les vérifications sont light, il clique et voit de suite réapparaitre son formulaire corrigé
enfin bref pourquoi tu ne veux pas faire submit le formulaire?
Marsh Posté le 08-06-2005 à 15:10:16
Et bien pour la simple raison que la validation de mon formulaire entraine une insertion dans la BD.
Et cela m'est imposé, pas question d'une page intermédiaire.
Citation : |
La question ne se pose pas pour moi, ce sont pour des clients intranet donc j'ai largement de quoi vérifier que leur client a JS d'activé.
Merci quand meme pour ta réponse.
Marsh Posté le 08-06-2005 à 15:16:20
Ryujin a écrit :
|
Un input est une balise vide, donc <input type="text> point barre (ou <input type="text" /> en xhtml)
On lui donne un name pour connaître le champ à peupler, donc <input type="text" name="dns"> mais si on veut y accéder via JS il faut lui donner un ID donc <input type="text" name="dns" id="dns">
Enfin, la valeur d'un input text peuple le champ value (étonnant non?)
Donc ici pour récupérer le contenu de l'input d'id "dns" on va utiliser
document.getElementById('dns').value |
Et j'arrive pas trop à comprendre la différence entre une page intermédiaire et un popup à la con au niveau du workflow, mais ça doit venir de moi
Marsh Posté le 08-06-2005 à 15:22:51
Ryujin a écrit : Et bien pour la simple raison que la validation de mon formulaire entraine une insertion dans la BD. |
Tu rappelles simplement la meme page et au début de celle ci, tu verifie si le formulaire a été soumis.
S'il l'est, tu vérifies les champs.
Si c'est correct, tu l'inséres dans le bdd, où à la limite tu appelles ton autre page.
Si c'est pas correct, tu réaffiches le formulaire.
Tout ca peut se faire en une seule page
Marsh Posté le 08-06-2005 à 15:27:35
ritzle a écrit : Si c'est pas correct, tu réaffiches le formulaire. |
Prépeuplé avec des indications d'erreurs
Marsh Posté le 08-06-2005 à 15:30:58
ReplyMarsh Posté le 08-06-2005 à 15:44:12
Citation : |
là n'est pas le sujet, cette écriture est valable.
Citation : On lui donne un name pour connaître le champ à peupler, donc <input type="text" name="dns"> mais si on veut y accéder via JS il faut lui donner un ID donc <input type="text" name="dns" id="dns"> |
Ok il est possible de donner un id à un champ d'un formulaire, mais cela n'est nullement obligatoire pour travailler les champs avec javascript, mes noms de champ sont unique, et l'appel via "nomFormulaire.nomCham.value(ou .text)" fonctionne parfaitement (pour l'avoir utilisé mainte et mainte fois)
Citation : Enfin, la valeur d'un input text peuple le champ value (étonnant non?) |
Je le sais parfaitement c'est pourquoi je précisais la valeur saisie afin de dissocier le "value" du "text" qui correspond à ce que l'on tappe dans le champ.
Enfin merci pour la réponse à la fin, ma solution marche mais c'était le "this.form" qui était faux
Pour la "popup à la con", désolé mais cela reste le choix de chacun il me semble, non ?
Marsh Posté le 08-06-2005 à 15:51:18
Ryujin a écrit : Je le sais parfaitement c'est pourquoi je précisais la valeur saisie afin de dissocier le "value" du "text" qui correspond à ce que l'on tappe dans le champ. |
Le truc con, c'est que c'est exactement la même chose pour un input text tu vois
Marsh Posté le 08-06-2005 à 16:01:09
oriente toi vers la solution de Ritzle, comme ca la vérification n'est pas contournable et la validation jamais problématique
Si un utilisateur fait joujou avec ses parametres JS ...
Marsh Posté le 08-06-2005 à 14:22:11
Bonjour,
J'ai un formulaire avec different champ, je souhaite effectuer un controle sur certain champ de texte en vérifiant que la valeur entrée n'est pas déjà existente dans la BD sans avoir à submit le formulaire.
Je suis donc parti pour la solution du javascript.
La comparaison de mon champ avec la BD se faisant par la suite en php, je suis dans l'obligation de passer par une pop up (communication javascript >> PHP) Je pensais donc passais la valeur saisie de mon champ dans l'url de cette pop up pour la recuperer avec un GET ensuite.
Seulement pour le moment la valeur saisie reste en "undefined" et je ne parviens pas à régler mon erreur.
Voici comment se présente cette partie du code :
ouvrirFenetre() m'ouvre une popup avec les arguments donné, je concatene au premier argument (l'adresse de la pop up) ce que je veux reccuperer par la methode GET ensuite. Ca n'a pas l'air de lui plaire le "+this.form.dns.text"
Merci d'avance pour votre aide.