IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Forcer la valeur provenant d'un radio


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Forcer la valeur provenant d'un radio
    Bonjour à tous, un grand merci à ceux qui oseront se pencher sur mon soucis, je vais essayer d'être le plus précis possible.

    Je dispose d'un formulaire assez basique, prenant cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="index.php" method="post" name="saisirreponse" id="saisirreponse">
    <input type="radio" name="reponse" value="a"> a
    <input type="radio" name="reponse" value="b"> b
    <input type="hidden" name="question" value=""> //rajouté en plus pour contourner le submit()
    <input type="submit" name="question" value="Continue">
    Jusque la, je pense que tout va .

    Dans cette même page, je place du php pour regarder si j'ai reçu quelque chose de mon formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    if (isset($_POST['question']))
    {
       if(isset($_POST['reponse']))
           {
               //ajout des réponses dans la BDD
           }
    //affichage de la question suivante
    }?>
    Lorseque je clique sur mon bouton submit, tout fonctionne, la page se recharge, mon code php detecte qu'un formulaire a été saisie et il inscrit les réponses.

    Mais la, je viens d'ajouter un timer. La personne doit répondre à la question dans un laps de temps donné. Ainsi, quand le timer est à 0, je voudrais que le formulaire soit envoyé automatiquement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function cptreb(sec) 
      {
         if(sec>0) 
           {
    	sec=sec-1; 
    	document.write="Il te reste : <br />"+sec+" secondes";
    	document.getElementById("cptreb").innerHTML =document.write;
           }
        if(sec==0)
          {
    	document.write="Temps écoulé";
    	document.getElementById("cptreb").innerHTML =document.write;
    	document.getElementById('saisirreponse').reponse.value="";
    	document.getElementById('saisirreponse').question.value="1";
    	alert('Too LATE !!!!');
    	document.getElementById('saisirreponse').submit();
         }
     
        setTimeout("cptreb("+sec+")", 1000);
    }
    Bien, la première fois que j'ai lancé mon code, je revenais à la page d'accueil.
    La, n'y connaissant rien, j'ai tenté de comprendre, et je me suis dit que :
    1. mon Code PHP detecte en fait si j'ai appuyé sur le bouton submit (qui doit prendre la valeur : value)
    2. la fonction submit() ne doit pas "appuyer" sur ce bouton, elle l'ignore, et donc ca me foire tout xD

    J'ai donc contourné en placant un champ hidden du même nom que mon submit et en modifiant sa valeur.
    document.getElementById('saisirreponse').question.value="1";
    C'est vraiment du bidouillage et ça doit pas être trop correct, mais en tout cas, ca fonctionne xD Il trouve un champ "question" et analyse bien tout le code qui en découle.

    Je me pensais tiré d'affaire, mais nan .
    Maintenant, le soucis, c'est que la personne n'ayant pas eu le temps de selectionner l'une ou l'autre radio, mon formulaire ne renvoyant aucune variable "reponse". J'ai bien tenté de faire :
    document.getElementById('saisirreponse').reponse.value="";
    Mais ça ne marche pas.
    (Sans la variable "reponse", il n'ajoute rien dans la BDD et donc me raffiche la question précédante. On perd tout l'intéret du timer ^^)


    Comment puis je faire pour donner une valeur au champ reponse, afin que le submit renvoi quelque chose ?

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut,

    je suis pas sûr d'avoir compris ton problème mais si tu veux donner une valeur à un champs radio, cela revient à ce qu'il soit coché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="radio" name="reponse" value="a" checked> a
    <input type="radio" name="reponse" value="b"> b

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    salut,

    je comprends ce que tu veux dire, mais quand le timer est fini, cela veut dire que la personne n'a pas répondu dans les temps, autrement dit, que sa réponse est mauvaise.

    Si je fais un script qui "coche" l'un des radio aléatoirement, il est possible que cela tombe sur la bonne réponse ^^.

    Je pense que le site en lui même devrait vous aider. Fait un tour la dessus : http://myrtill.choup.net. Attend la fin du timer de la première question, tu verras qu'il va te renvoyer à la même question, sans passer à la suivante, car aucune réponse n'aura été donné (normal vu que tu n'as rien coché).

    Je souhaite donc donner une valeur bidon, pour que mon code PHP prenne le relai.

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Ok je comprend mieux ton problème maintenant

    J'ai une solution : pourquoi ne pas créer un champ radio invisible (hidden) coché par défaut ?

    Comme ça si l'internaute ne clique pas, alors une valeur est envoyée qui est forcément fausse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="form" action="page.php" method="post">
    <input type="radio" value="reponse" name="rep_fausse" checked style="visibility='hidden'">
    <input type="radio" value="reponse" name="rep1"> réponse1  <br />
    <input type="radio" value="reponse" name="rep2"> réponse2
    <form>
    Ca devrait fonctionner non ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    ahah xD
    mais c'est tout con ^^

    Vu mon code PHP, j'ai réussi a implanter ça facilement, la mise en page n'est en rien touchée et ca marche

    Un grand merci Madfrix

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Pas de problème, bon courage pour la suite !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recupérer la valeur d'un bouton radio
    Par ericmart dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 15h42
  2. Forcer la valeur d'un radio bouton
    Par lthibert dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/11/2006, 15h29
  3. [Conception] inserer des valeurs provenant d'une liste multiple
    Par digger dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/11/2005, 17h35
  4. [JSP] passer en parametre valeur d un bouton radio
    Par logica dans le forum Servlets/JSP
    Réponses: 19
    Dernier message: 13/05/2005, 14h09
  5. Réponses: 13
    Dernier message: 24/02/2005, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo