Récupérer la valeur d'un radio bouton choisi

Résolu/Fermé
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - Modifié par Mickael86480 le 17/09/2011 à 19:44
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 17 sept. 2011 à 23:53
Bonjour, je suis en train de mettre en place un quizz sur un site de géographie. Pour la première partie du quizz, la question est de savoir à quelle pays correspond le drapeau affiché. Pour que l'utilisateur choisisse un pays il a, à sa disposition, 4 radio bouton avec en valeur le nom des pays. Le problème est pour la vérification de la réponse par rapport à la bonne réponse. Comment savoir quel est le radio bouton choisi et s'il s'agit de la bonne réponse?

Voici le code que j'ai réalisé jusque là :

//création d'une array contenant les réponses et la bonne réponse à la question
$reponses = array(''.$data['nom_pays'].'',''.$data1['nom_pays'].'',''.$data2['nom_pays'].'',''.$data3['nom_pays'].'');
$solution = ''.$data['nom_pays'].'';

echo'<center><img src=img/drapeau/'.$data['id'].'.png border=2 ></center><br><br>';

//on mélange le tableau
if(shuffle($reponses))
{
foreach($reponses as $value)
{
echo '<center><input type="radio" name="reponses" value='.$value.'>'.$value.'</center><br>';
}
}

echo'<center><form action="drapeau.php" method="post" />
<input type="submit" name="valider" value="Valider">
</form></center>';

merci de bien vouloir m'aider

A voir également:

3 réponses

J'ai testé sous EasyPHP ça fonctionne :

<?php  
# Réponce récupéré dans la base de donnée : 
$Reponse = '3'; 
?> 

<script type="text/javascript"> 
function Radio() {  
 if (document.getElementById('Radio<?php echo $Reponse; ?>').checked == true) {  
  document.getElementById('Reponse').innerHTML = 'Bravo !';  
  }  
  
 else { document.getElementById('Reponse').innerHTML = ''; }  
  
}  
</script> 


<img src="http://www.orca-sejours.fr/fr/images/ALLEMAGNE%20drapeau.jpg"> 

<!-- Ici c'est une boucle PHP (while) qui rajoute le numero dans chaque id --> 
<form action="#"> 
<input type="radio" id="Radio1" name="France" value="France" onClick="Radio();"> France 
<input type="radio" id="Radio2" name="Belgique" value="Belgique" onClick="Radio();"> Belgique 
<input type="radio" id="Radio3" name="Allemagne" value="Allemagne" onClick="Radio();"> Allemagne 
</form> 

<div id="Reponse"> </div>



Copie dans ton colorateur de syntaxe !
1
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 sept. 2011 à 20:46
Ok merci mais est-ce qu'avec ce code, on a un message si la réponse choisie est bonne ou non? Car j'en ai aucun
0
Utilisateur anonyme
17 sept. 2011 à 20:48
Bin oui, si tu choisi Allemagne sa te met un message "bravo !" enfin chez moi sa fonctionne.
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 17/09/2011 à 21:02
Okey c'est vrai ça fonctionne, mais je ne sais pas où le mettre dans mon code, voici l'intégralité de ma page :

<?php
include ('connection.php') ;

// On prépare la requète
$sql = "SELECT id FROM pays WHERE niveau_quizz LIKE 0";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// Calcul du nombre de résultats
$nb = mysql_num_rows($req);

// On place les résultats dans un tableau
while($data = mysql_fetch_array($req))
{
$resultats[] = $data['id'];
}

// On prépare un nombre aléatoire entre 0 et le nombre de résultats
$nb_min = 0;
$nb_max = $nb-1;
$nombre = mt_rand($nb_min,$nb_max);

// On affiche le résultat aléatoire
$id = $resultats[$nombre];
$sql = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

$nb_min = 0;
$nb_max = $nb-1;
$rep1 = mt_rand($nb_min,$nb_max);
$rep2 = mt_rand($nb_min,$nb_max);
$rep3 = mt_rand($nb_min,$nb_max);

while($nombre == $rep1){
$rep1 = mt_rand($nb_min,$nb_max);
}

while($nombre == $rep1){
$rep2 = mt_rand($nb_min,$nb_max);
}

while($nombre == $rep1){
$rep3 = mt_rand($nb_min,$nb_max);
}

$id1 = $resultats[$rep1];
$id2 = $resultats[$rep2];
$id3 = $resultats[$rep3];

$requetesql = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id1).'"';
$req = mysql_query($requetesql) or die('Erreur SQL !<br />'.$requetesql.'<br />'.mysql_error());
$data1 = mysql_fetch_array($req);

$requetesql2 = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id2).'"';
$req2 = mysql_query($requetesql2) or die('Erreur SQL !<br />'.$requetesql2.'<br />'.mysql_error());
$data2 = mysql_fetch_array($req2);

$requetesql3 = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id3).'"';
$req3 = mysql_query($requetesql3) or die('Erreur SQL !<br />'.$requetesql3.'<br />'.mysql_error());
$data3 = mysql_fetch_array($req3);

while(($data['nom_pays'] == $data1['nom_pays']) || ($data1['nom_pays'] == $data2['nom_pays']) || ($data1['nom_pays'] == $data3['nom_pays'])){
$requetesql = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id1).'"';
$req = mysql_query($requetesql) or die('Erreur SQL !<br />'.$requetesql.'<br />'.mysql_error());
$data1 = mysql_fetch_array($req);
}

while(($data['nom_pays'] == $data2['nom_pays']) || ($data2['nom_pays'] == $data3['nom_pays'])){
$requetesql2 = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id2).'"';
$req2 = mysql_query($requetesql2) or die('Erreur SQL !<br />'.$requetesql2.'<br />'.mysql_error());
$data2 = mysql_fetch_array($req2);
}

while($data['nom_pays'] == $data3['nom_pays']){
$requetesql3 = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id3).'"';
$req3 = mysql_query($requetesql3) or die('Erreur SQL !<br />'.$requetesql3.'<br />'.mysql_error());
$data3 = mysql_fetch_array($req3);
}

//création d'une array contenant les réponses et la bonne réponse à la question
$reponses = array(''.$data['nom_pays'].'',''.$data1['nom_pays'].'',''.$data2['nom_pays'].'',''.$data3['nom_pays'].'');
$solution = ''.$data['nom_pays'].'';

echo'<center><img src=img/drapeau/'.$data['id'].'.png border=2 ></center><br><br>';
?>

<?php
//on mélange le tableau
if(shuffle($reponses))
{
foreach($reponses as $value)
{
echo '<center><input type="radio" name="reponses" value='.$value.'>'.$value.'</center><br>';
}
}

echo'<center><form action="drapeau.php" method="post" />
<input type="submit" onclick="verification();" name="valider" value="Valider">
</form></center>';

?>
0
Utilisateur anonyme
17 sept. 2011 à 21:32
Je suis pas a l'aise avec ton code alors je t'en fait un de A a Z (en adméttant que la base de donnée est u fichier texte).
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 sept. 2011 à 21:34
Si je commente ça serai mieux peut-être?
0
Voila c'est sa que tu veut :
http://alien06.free.fr/pays/index.php

Le script choisi un drapeau au hasard

J'ai mis un select à la place d'un radio, je trouve que c'est plus pratique mais sa reviens au même !
1
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 sept. 2011 à 23:21
Oui mais il s'agit d'un quizz, je suis pas sur que se soit pratique, est-ce possible par radio bouton?
0
Utilisateur anonyme
17 sept. 2011 à 23:34
Oui regarde sur le meme lien j'ai mis des radio a la place
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 sept. 2011 à 23:41
petit bug, je peux selectionné plusieurs radio bouton :)
0
Utilisateur anonyme
17 sept. 2011 à 23:44
Oui enfin ça c'est pas grave, tu peut télécharger le script la : http://dl.dropbox.com/u/39569085/pays.zip

T'as plus qu'a l'adapter a ton site.
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
17 sept. 2011 à 23:53
merci pour ton aide Alien41
0
Le mieu c'est en Java Script avec un id pour chaque radio :

<script type="text/javascript">  
function Radio() {  
if (document.getElementById('Radio1').cheked == true) {  
document.getElementById('Reponse').innerHTML = 'Bravo !';  
}  
else {  
document.getElementById('Reponse').innerHTML = '';  
}  
}  
</script>  

<div id="Reponse"></div>  


<script type="text/javascript">  
setInterval('Radio()', 500);  
</script> 


PS : je suis pas sur pour le "cheked"
http://www.gmoreau.user.fr
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 17/09/2011 à 20:13
Okey je crois que ça s'écrit checked. Est-il possible d'expliquer le code que tu m'as donné stp.

Car voici ce que j'ai fais, le code suivant est mis dans un fichier js :

function Radio() {
if (document.getElementById('Radio1').checked == true) {
document.getElementById('Reponse').innerHTML = 'Bravo !';
}
else {
document.getElementById('Reponse').innerHTML = '';
}
}

ensuite dans la page courante php, j'ai mis cela :

echo'<center><form action="drapeau.php" method="post" />
<input type="submit" OnClick="Radio();" name="valider" value="Valider">
</form></center>';

la page n'affiche rien pas de "bravo" ou "mauvais" (ni d'erreur).

PS: je débute en prog
0
Utilisateur anonyme
17 sept. 2011 à 20:24
Je te fait un code attend
0