passage d'un champ saisie dans l'url (sans submit)

passage d'un champ saisie dans l'url (sans submit) - HTML/CSS - Programmation

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 :

Code :
  1. DNS :
  2. <input type="text" name="dns"></input>
  3. <input type="button" class="bouton" value="v&eacute;rifier" onclick="ouvrirFenetre('popupVerifDns.php?dns='+this.form.dns.text,'popup','width=400,height=200');">


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.

Reply

Marsh Posté le 08-06-2005 à 14:22:11   

Reply

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?


Message édité par Djebel1 le 08-06-2005 à 14:54:14
Reply

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 :


et si ton client a désactivé JS?  


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.

Reply

Marsh Posté le 08-06-2005 à 15:16:20    

Ryujin a écrit :

Code :
  1. DNS :
  2. <input type="text" name="dns"></input>
  3. <input type="button" class="bouton" value="v&eacute;rifier" onclick="ouvrirFenetre('popupVerifDns.php?dns='+this.form.dns.text,'popup','width=400,height=200');">



[:pingouino]
 
Un input est une balise vide, donc <input type="text> point barre (ou <input type="text" /> en xhtml) [:pingouino]
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"> [:pingouino]
Enfin, la valeur d'un input text peuple le champ value (étonnant non?) [:pingouino]
 
Donc ici pour récupérer le contenu de l'input d'id "dns" on va utiliser  

document.getElementById('dns').value


[:pingouino]
 
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 [:pingouino]


Message édité par masklinn le 08-06-2005 à 15:17:02

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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.
Et cela m'est imposé, pas question d'une page intermédiaire.


 
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


Message édité par ritzle le 08-06-2005 à 15:23:12
Reply

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 [:aloy]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-06-2005 à 15:30:58    

masklinn a écrit :

Prépeuplé avec des indications d'erreurs [:aloy]


ca me paraissait évident

Reply

Marsh Posté le 08-06-2005 à 15:44:12    

Citation :


Un input est une balise vide, donc <input type="text> point barre (ou <input type="text" /> en xhtml)  


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.  :sarcastic:  
 
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 ?

Reply

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.  :sarcastic:


Le truc con, c'est que c'est exactement la même chose pour un input text tu vois [:itm]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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 ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed