QCM en php

Résolu
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -  
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Pour m'entrainer en php j'essaie de faire un QCM...

QCM avec question : "Quel département correspond au XX ?"; x étant donné au hasard.
et QCM avec 4 propositions dont la bonne réponse.

Je n'arrive à donner un ordre aléatoire pour les réponses et empêcher le programme d'afficher deux fois la même proposition.

Voilà ma source :

<?php
require ('tools/departements.php');	 
// Liste des départements : Extrait ci dessous:
// $dpt[1] = "01"; $departement[1]="Ain"; (valeurs préalabement déclarées en Array();

// Choix aléatoire d'un numéro de département pour la question :
$num=intval(rand(1,count($departement))); 

// Trois propositions au hasard (dont peut-être la bon :s !)
$propositions=Array();

// Les trois mauvaises réponses dans un tableau
for ($i=1;$i<=3;$i++) $propositions[$i]=$departement[intval(rand(1,count($departement)))];

// La bonne réponse à la fin du même tableau
$propositions[4]=$departement[$num];

// Affichage de la question et des propositions					
echo "<h1>$q. A quel département correspond le numéro ".$dpt[$num]." ?</h1>";
echo "<ul>";
		for ($i=1;$i<=count($propositions);$i++) {
			echo "<li id='prop[$i]'><input type='radio' value='".$propositions[$i]."' name='propositions' id='rep[$i]' onclick='A FAIRE' /> <label for='rep[$i]'>".$propositions[$i]."</label></li>";
		}
echo "</ul>";
?>


Si quelqu'un a une idée ?

Merci.
A voir également:

1 réponse

coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Pour empêcher d'afficher deux fois la même proposition, tu peux progressivement remplir un array() avec un indice sur les propositions déjà utilisées, et tu vérifies à chaque fois que le script veut entrer une nouvelle proposition ; si celle qu'il avait en tête est déjà dans le array, il doit recommencer, jusqu'à ce qu'il tombe sur une proposition originale.

Et pour mettre tes propositions dans le désordre, tu peux utiliser un shuffle() sur ton array :
www.w3schools.com/php/func_array_shuffle.asp

J'espère que ça t'aide !
4
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
Parfait ! Merci...
0