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

Résolu
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -  
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -
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

Utilisateur anonyme
 
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 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
 
Bin oui, si tu choisi Allemagne sa te met un message "bravo !" enfin chez moi sa fonctionne.
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
 
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 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Si je commente ça serai mieux peut-être?
0
Utilisateur anonyme
 
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 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
 
Oui regarde sur le meme lien j'ai mis des radio a la place
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
petit bug, je peux selectionné plusieurs radio bouton :)
0
Utilisateur anonyme
 
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 660 Date d'inscription   Statut Membre Dernière intervention   35
 
merci pour ton aide Alien41
0
Utilisateur anonyme
 
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 660 Date d'inscription   Statut Membre Dernière intervention   35
 
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
 
Je te fait un code attend
0