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
    Membre averti
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    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 Expert 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
    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
    Membre averti
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    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 Expert 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
    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
    Membre averti
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    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 Expert 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
    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