Récupérer la valeur d'un radio bouton choisi [Résolu/Fermé]

Signaler
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
-
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
-
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

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86768 internautes nous ont dit merci ce mois-ci

Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
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>';

?>
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).
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
Si je commente ça serai mieux peut-être?
Utilisateur anonyme
Tu peut m'envoyer par mail la liste des images des drapeau stp ?
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
Oui mais comment dois-je faire?
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86768 internautes nous ont dit merci ce mois-ci

Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
Oui mais il s'agit d'un quizz, je suis pas sur que se soit pratique, est-ce possible par radio bouton?
Utilisateur anonyme
Oui regarde sur le meme lien j'ai mis des radio a la place
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
petit bug, je peux selectionné plusieurs radio bouton :)
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.
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
merci pour ton aide Alien41
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
Mickael86480
Messages postés
631
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
20 août 2019
14
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
Utilisateur anonyme
Je te fait un code attend