Probleme avec un formulaire

Résolu
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007 - 12 mars 2007 à 13:49
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 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();
 

10 réponses

SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 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
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
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 )

<script type="text/javascript">
    function maj(f)
    {
       f.reajou.value="1"
    }
</script>
<form action="index.php" method="POST" name="formxxx" onsubmit="maj(this);">
...

il vaut mieux éviter les name qui ressemblent à ce que connait html/javascript...

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]              




<hr />
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 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.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 mars 2007 à 15:01
>>Etant donné que php et javascript ne peuvent se mélanger

on peut dire ça comme ça.... mais ils "communiquent" ( si on peut dire aussi ! )
et que donne ce que je te propose ?


<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 mars 2007 à 15:09
et s'il faut envoyer le formulaire directement sans action du visiteur :


<form action= "index.php" method="POST" name="form_toto">

<select name="liste">
//code php pour remplir les options
</select>



<!-- input type="submit" name="Ok" value="Ok" pas de bouton submit alors, inutile -->
</form>

document.form_toto.reajou.value = "1";
document.form_toto.submit();








<hr />
Cordialement Bul [
mon Site
] [
=Bul
M'écrire

]
<hr />
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 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.
 
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 mars 2007 à 15:17
>>J'veut pas mettre la variable a jour au moment de l'envoi du formulaire, mais plus tard.

        si le formulaire est envoyé, la page html/javascript "perd la main",
                        n'existe plus, et on ne peut plus rien faire...


>>en restant sur du php et via un header.
        ??


<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 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.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
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.

<hr />


Cordialement        Bul         [mon Site]     [M'écrire]           




<hr />
0
SeNeO64 Messages postés 28 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 22 août 2007
12 mars 2007 à 15:59
Oki.
Merci beaucoup de ton aide. Pour l'instant j'suis sur autre chose, mais de que je m'y remet j'e tiens au jus pour l'evolution du scmilbilick.
0
Rejoignez-nous