SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007
-
12 mars 2007 à 13:49
SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007
-
13 mars 2007 à 18:32
Bonjour.
J'ai un problème avec java script.
En effet je n'arrive pas a modifie la valeur d'un champ de formulaire.
J'ai une erreur me disant: this.document.forms[0].reajou a la valeu null ou n'est pas un objet.
Je ne voit pas d'ou ca vient (j'débute en javascript). Mon champ dans le formulaire et la variable ue je modifie porte bien le meme nom.
Je vous met les portions de code correspondante.
Merci de votre aide.
tout d'abord le formulaire:
<form action="index.php" method="POST" name="form">
<select name="liste">
//code php pour remplir les options
</select>
</td>
</form>
et la modification du champ et le renvoi du formulaire:
this.document.forms[0].reajou.value = "1";
document.form.submit();
SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007 13 mars 2007 à 18:32
C'est bon j'ai trouvé le pourquoi du comment du schmilblick.
Le problème venait tout simplement du fait que je mettais ma valeur a jour avant de créer le formulaire dans ma page. Et donc javascript ne le connaissait pas, d'ou l'erreur.
Oui oui je suis boulet :p
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 mars 2007 à 14:40
Bonjour,
c'est bien, mais où c'est fait ces ordres javascript ?
car déjà, j'ai un gros doute avec this !
et s'il y a un bouton submit, pourquoi faire form.submit() ?
qui d'ailleurs ne s'adresse pas au formulaire
comme dans l'instruction précédente. curieux.
normalement, onsubmit est fait pour ça....
( ce qui permettrait de retourner true ou false pour
envoyer ou pas si on contrôle les champs par exemple )
SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007 12 mars 2007 à 14:49
Ben en fait le formulaire me sert à récupérer l'adresse email.
Une fois cette adresse mail récupéré, je test via php si elle est déja présente, mais désinscrite dans un BD.
Si c'est le ca j'affiche une boite de dialogue permettant a l'utilisateur de choisir s'il souhaite réinscrire la personne ou pas. C'est la que le champ caché et le submit du formulaire m'aurai permi de recharger ma page, et donc de faire le cas ou reajout=oui dans une suite de test.
Etant donné que php et javascript ne peuvent se mélanger, c'est l'une des seules solutions que j'ai trouvé. Si t'en a une meilleur je suis preneur ;) , mais je m'y connait pas assez en js pour tout faire en javascript.
SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007 12 mars 2007 à 15:11
Je suppose que ca va marcher, mais c'est pas ce que je veut faire.
J'veut pas mettre la variable a jour au moment de l'envoi du formulaire, mais plus tard.
Par contre j'pense avoir une piste en restant sur du php et via un header.
SeNeO64
Messages postés28Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention22 août 2007 12 mars 2007 à 15:28
En fait j'envoie d'abord mon formulaire avec email. J'l'envoie sur lui meme.
En début de page j'ai des test pour savoir si l'email est valide...etc
Donc j'arrive au moment ou mon email est valide, ou il est présent dans la base mais déasinscrit.
C'est la que je veut mettre ce champ a jour, renvoyer mon formulaire et donc recommencer mes test, mais en suivant une branche différente, et donc mettre ma base de donnée a jour.
Je sais pas si mon explication est claire, mais moi je me comprend (c'est déjà pas mal).
Donc pour ma seconde solution, j'pense que si l'utilisateur cliques sur oui dans la boite de dialogue, j'v mettre un header de redirection qui va me peremetre de me rediriger vers une autre url, mais qui ici sera la meme avec juste un truc du style .php?reajou=oui qui va me permettre de rentrer dans mes test par un if($_GET['reajout']=="oui"). Enfin un truc du style.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 mars 2007 à 15:49
je ne comprend pas tout, et c'est normal à mon avis.
pour revenir à l'erreur initiale ( le reste c'est une question
de logique de ton application ) je t'ai donné plusieurs
manières d'adresser le champ, en fonction de "où on est"
d'aucuns diraient met un id="toto"
et utilise document.getElementById("toto").value=...
ce qui est une autre solution... différente.