Php - questionnaire - radio

Fermé
Nivek Freedomsoul - 9 avril 2010 à 01:55
 Nivek Freedomsoul - 9 avril 2010 à 16:27
Bonsoir,

Bon voilà j'ai mon code, qui , a partir de ma BDD affiche les questions, choix de réponses avec un type radio, tout ça dans une boucle


Par contre comme j'ai plusieurs question, j'ai plusieurs réponses,
Les name changent pour chaque question, et passe de:
name="question_1"
jusqu'à
name="question_x"

Mais pour les réponses, je n'arrive pas a les mémoriser , dans un array ?

Sur le même page, les réponses sont affichées lors de la validation.

	$reponse["a"] = htmlspecialchars($_POST['question_']);
	// la variable $reponse prend la valeur choisit par l'utilisateur (lors de la séléction de sa réponse)
	$reponse = $reponse[$a];
	$question = $donnees['question']; // Question
	$reponse_a = $donnees['reponse_a']; // Réponse a)
	$reponse_b = $donnees['reponse_b']; // Réponse b)
	$reponse_c = $donnees['reponse_c'];	// Réponse c)

<..code..>

	echo "<p class=\"reponse\">\n";
	echo "<input type=\"hidden\" name=\"question_$a\" value=\"$no_reponse\" selected=\"selected\"/>\n";
	echo "<!-- caché en temps normal mais affiché par défaut si rien n'a été sélectionné -->\n";
	echo "<input type=\"radio\" name=\"question_$a\" id=\"reponse_$b\" value=\"$reponse_a\"/><label for=\"reponse_$b\"> a) $reponse_a</label><br>\n";
	echo "<input type=\"radio\" name=\"question_$a\" id=\"reponse_$c\" value=\"$reponse_b\"/><label for=\"reponse_$c\"> b) $reponse_b</label><br>\n";
	echo "<input type=\"radio\" name=\"question_$a\" id=\"reponse_$d\" value=\"$reponse_c\"/><label for=\"reponse_$d\"> c) $reponse_c</label><br>\n";
	echo "</p>\n";

Sachant donc que c'est dans une boucle, comment traiter chaque réponse !?

Merci d'avance pour l'aide apportée
A voir également:

2 réponses

creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
9 avril 2010 à 03:08
Tu pourrais commencer en codant ton formulaire comme suit:

<h3>Question 1 - Lequel de ces langages du Web s'exécute côté serveur ?</h3>
<input type="radio" name="q_1" value="a" id="q_1_a" />
<label for="q_1_a">JavaScript</label>
<br />
<input type="radio" name="q_1" value="b" id="q_2_b" />
<label for="q_1_b">CSS</label>
<br />
<input type="radio" name="q_1" value="c" id="q_3_c" />
<label for="q_1_c">PHP</label>
<br />
<input type="radio" name="q_1" value="d" id="q_4_d" />
<label for="q_1_d">HTML</label>
<br />
<h3>Question 2 - Une autre question</h3>
...



Ensuite, tu pourrais exploiter les données de ce formulaire de cette façon:

<?php

    $reponse = array();
    for ($i=1 ; $i<=$nombre_de_champs ; $i++) {
        $reponse[$i] = $_POST["q_$i"];
    }

?>


Le tableau $reponse contiendra ainsi toutes les réponses aux questions (si l'utilisateur a correctement répondu, on aura par exemple $reponse[1] sera une chaîne dont la valeur sera c.
0
Nivek Freedomsoul
9 avril 2010 à 16:27
Toute a l'heure j'ai réussi a trouvé comment faire,


	$reponse = StripSlashes(htmlentities($_POST["question_$a"], ENT_QUOTES));


comme chaque réponse est vérifié une par une, c'est suffisant =)

Merci pour ton aide,
Mais le truc c'est que j'envoie les question, réponse dans ma BDD avec un page, et elles sont affiché automatiquement sur la page de question, c'était pour éviter justement de modifier la page html, là tout est automatisé =)

C'est vrai, je pensais à un array, mais comme je maitrise pas tellement..

Enfin, je vais tanter de m'y mettre !

Pour ton bout de code, j''étais parit sur ça au début, mais le truc c'est que me page, lors de la validation, donne la réponse choisit, et affiche la bonne réponse, d'ou les values avec la réponse ;)
0