Script php pour créer un quiz

Fermé
émilie - 20 févr. 2010 à 06:02
Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 - 26 févr. 2010 à 08:33
Bonjour :)
Je suis débutante en php et j'essaie de créer un quiz pour mon site perso.
J'ai trouvé des informations de base sur le net pour m'aider, mais le quiz a des particularités qui me posent problèmes:
-selon la réponse donnée à la question 1, le participant voit s'afficher la question 1.1, 1.2, 1.3 ou 1.4...
-chaque réponse attribue un pointage différent (pas de bonnes ou mauvaises réponses)

Vraiment, toute aide serait grandement appréciée parce que j'y travaille depuis un mois...
Merci !!
A voir également:

12 réponses

Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 17
26 févr. 2010 à 08:33
<? php
if($points<40){
echo'waguey';
}elseif($points>40&&$points<=210){
echo'kah';
}elseif($points>210&&$points<=330){
echo'Trimai';
}elseif($points>330&&$points<=520){
echo'houma';
}elseif($points>520&&$points<=630){
echo'Seghpaï';
}elseif($points>630&&$points<=690){
echo'Seneich';
}elseif($points>690&&$points<=750){
echo'Nattan';
}elseif($points>750&&$points<=810){
echo'Chevalier';
}elseif($points>810&&$points<=870){
echo'Kapy';
}elseif($points>870&&$points<=930){
echo'Sorcier';
}elseif($points>930&&$points<=1000){
echo'Karashan';
}elseif($points>1000&&$points<=1030){
echo'Noki';
}else{
echo'Kys';
}
?> 

Tu n'aurais pas un tout petit peu oublié les { } ?
3
Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 17
20 févr. 2010 à 07:54
Salut,

Une solution peut être d'utiliser le JavaScript pour tester les choix fait par l'utilisateur et afficher la suite selon le cas. Certainement pas la meilleure en terme d'efficacité et de clarté mais de mon point de vue la plus simple à mettre en place.

Ce qui par exemple pourrais donner, en partant du principe que tes réponses se sélectionnent via des boutons radio, quelque chose comme ca :
dans ton formulaire de réponse rajoute l'attribut onClick qui fera appel à la fonction correspondante :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>quizz</title>
</head>
<!-- le code java script -->
<SCRIPT language="javascript">
<!--
//cache les éléments en fonction du navigateur et de la div
function cache(nom) { 
	if (document.getElementById) {
		document.getElementById(nom).style.display = 'none'; 
	} 
	else { 
		if (document.layers) {
			document.layers[nom].display = 'none'; 
		} 
		else { 
			document.all[nom].style.display = 'none'; 
		} 
	} 
} 
//Affiche les éléments en fonction du navigateur et de la div
function affiche(nom) { 
	if (document.getElementById) { 
		document.getElementById(nom).style.display = 'block'; 
	} 
	else { 
		if (document.layers) { 
			document.layers[nom].display = 'block'; 
		} 
		else { 
			document.all[nom].style.display = 'block'; 
		} 
	} 
} 

//affiche la question 2 correspondante au choix de la 1
function afficheQuestion2(){
	if(document.quizz.question1[0].checked){
		affiche('question21');
		cache('question22');
	}else{
		if(document.quizz.question1[1].checked){
			affiche('question22');
			cache('question21');
		}else{
                cache('question21');
                cache('question22');
        	}
	}
}
//-->
</SCRIPT>

<!-- puis le corps de la page -->
<body>
<!-- ... -->
<!-- ... -->
<form action="cible.php" method="post" name="quizz" id="quizz">

<div id="question1"><p>Question 1 ? :<br />
      	Reponse1<input  type="radio" value="Reponse1" name="question1" onClick="afficheQuestion2()" /><br />
      	Reponse2<input type="radio" value="Reponse2" name="question1" onClick="afficheQuestion2()" />
</p></div>
<div id="question21"><p>Question 2.1 ? :<br />
      	Reponse1<input  type="radio" value="Reponse1" name="question21" onClick="afficheQuestion3()" /><br />
      	Reponse2<input type="radio" value="Reponse2" name="question21" onClick="afficheQuestion3()" />
</p></div>
<div id="question22"><p>Question 2.2 ? :<br />
      	Reponse1<input  type="radio" value="Reponse1" name="question22" onClick="afficheQuestion3()" /><br />
      	Reponse2<input type="radio" value="Reponse2" name="question22" onClick="afficheQuestion3()" />
</p></div>
<!-- ... -->
<!-- ... -->
<button type="submit" name="valider"><img src="images/valider.gif" alt="bouton de validation" /></button>
</form>

<script language="JavaScript">
<!--
//pour que les fonctions s'initialise et comme rien ne sera choisi les div ne s'afficheront pas
	afficheQuestion2();
	afficheQuestion3();
// -->
</script>
</body>
</html>


(J'ai pas fais de mise en forme, donc, ca, ca serait très moche mais le principe est là, tu peux copier coller le code dans une page pour voir ce que ca donne c'est fonctionnel)

Puis tu récupère tes résultats dans la page cible avec des variable $_POST['question1'] et tu les traites comme tu veux.

Bon par contre ce code est très éclater pour que le principe soit plus clair à comprendre mais ta page fera 1000 lignes avant que tu t'en rendes compte, pour plus de lisibilité tu peux mettre le code javascript dans un fichier "java.js" et l'appeler dans la balise script, tu peux aussi passer les numéros de question en paramètre de la fonction et ne faire qu'une seule fonction au lieu de une par question (si tu fais ca pense à tester le nombre de réponse possible si les questions n'ont pas toute le même ou alors passe le en paramètre aussi). Il pourrait être amélioré de mille façons et pour ca je te conseil vivement de te pencher sur deux-trois tuto (le site du zéro est parfait pour ca).

Si tu as des questions plus précises ajoute ton code avec pour qu'on puisse mieux y répondre.
2
Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 17
21 févr. 2010 à 15:18
Alors, en fait il y avait pas mal de petits soucis.
Pas de grosses erreurs mais vraiment plein de petites ^^

Voici une correction où j'ai apporté des modifications, j'explique plus bas.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>quizz</title>
</head>
<!-- le code java script -->
<SCRIPT language="javascript">
<!--
//cache les éléments en fonction du navigateur et de la div
function cache(nom) {
	if (document.getElementById) {
		document.getElementById(nom).style.display = 'none';
	}
	else {
		if (document.layers) {
			document.layers[nom].display = 'none';
		}
		else {
			document.all[nom].style.display = 'none';
		}
	}
}
//Affiche les éléments en fonction du navigateur et de la div
function affiche(nom) {
	if (document.getElementById) {
		document.getElementById(nom).style.display = 'block';
	}
	else {
		if (document.layers) {
			document.layers[nom].display = 'block';
		}
		else {
			document.all[nom].style.display = 'block';
		}
	}
}

//affiche la question suivante correspondante au choix de la 1
function afficheQuestion2(){
    //on commence par cacher toutes les questions
    cache('question2_0');
    cache('question2_1');
    cache('question2_2');
    cache('question2_3');
    //pour tous les choix de la question 1
    for (i=0; i<4; i++){
        //si une réponse est choisie
        if(document.quizz.question1[i].checked){
                    //affiche la qestion associée
                    affiche('question2_'+i);
            }
    }
}

//affiche la question 3 suite à un choix dans une des question 2
function afficheQuestion3(){
    // on commence par cacher la question 3
    cache('question3');
    //pour la question 2_0
    for (i=0; i<4; i++){
        //si l'une des réponses est choisie
        if(document.quizz.question2_0[i].checked){
                //on affiche la question 3
                affiche('question3');
        }
    }
    //pour la question 2_1
    for (i=0; i<5; i++){
        //si l'une des réponses est choisie
        if(document.quizz.question2_1[i].checked){
                //on affiche la question 3
                affiche('question3');
        }
    }
    //pour la question 2_2
    for (i=0; i<2; i++){
        //si l'une des réponses est choisie
        if(document.quizz.question2_2[i].checked){
                //on affiche la question 3
                affiche('question3');
        }
    }
    //pour la question 2_3
    for (i=0; i<2; i++){
        //si l'une des réponses est choisie
        if(document.quizz.question2_3[i].checked){
                //on affiche la question 3
                affiche('question3');
        }
    }
}

//-->
</SCRIPT>

<!-- puis le corps de la page -->
<body>
<!-- ... -->
<!-- ... -->
<form action="questionnaire1.php" method="post" name="quizz" id="quizz">

<div id="question1"><p>Vous vous retrouvez dans un autre monde et vous pouvez votre style de vie... Que choisiriez-vous entre:<br />
Sage<input type="radio" value="Sage" name="question1" onClick="afficheQuestion2()" /><br />
Guerrier<input type="radio" value="Guerrier" name="question1" onClick="afficheQuestion2()" /><br />
Artisan<input type="radio" value="Artisan" name="question1" onClick="afficheQuestion2()" /><br />
Je ne sais pas<input type="radio" value="Je ne sais pas" name="question1" onClick="afficheQuestion2()" />
</p></div>

<div id="question2_0"><p>Si j’étais un sage, ma sagesse viendrait de quelle source parmi les suivantes<br />
clairvoyance<input type="radio" value="clairvoyance" name="question2_0" onClick="afficheQuestion3()" /><br />
nature<input type="radio" value="nature" name="question2_0" onClick="afficheQuestion3()" /><br />
méditation<input type="radio" value="méditation" name="question2_0" onClick="afficheQuestion3()" /><br />
intuition<input type="radio" value="intuition" name="question2_0" onClick="afficheQuestion3()" />
</p></div>

<div id="question2_1"><p>Si j’étais un guerrier, ma principale qualité serait<br />
vif<input type="radio" value="vif" name="question2_1" onClick="afficheQuestion3()" /><br />
fort<input type="radio" value="fort" name="question2_1" onClick="afficheQuestion3()" /><br />
adroit<input type="radio" value="adroit" name="question2_1" onClick="afficheQuestion3()" /><br />
doué<input type="radio" value="doué" name="question2_1" onClick="afficheQuestion3()" /><br />
honorable<input type="radio" value="honorable" name="question2_1" onClick="afficheQuestion3()" />
</p></div>

<div id="question2_2"><p>Si j’étais un artisan, je serais<br />
fromager<input type="radio" value="fromager" name="question2_2" onClick="afficheQuestion3()" /><br />
ébéniste<input type="radio" value="ébéniste" name="question2_2" onClick="afficheQuestion3()" />
</p></div>

<div id="question2_3"><p>Je ne sais pas ce que j&apos;aimerais être parce que<br />
Il me faudrait plus de temps pour y penser<input type="radio" value="Il me faudrait plus de temps pour y penser" name="question2_3" onClick="afficheQuestion3()" /><br />
Je ne sais pas trop ce que je désire<input type="radio" value="Je ne sais pas trop ce que je désire" name="question2_3" onClick="afficheQuestion3()" />
</p></div>

<div id="question3"><p>Présentement, qu’est-ce qui m’intéresse le plus entre<br />
la spiritualité<input type="radio" value="la spiritualité" name="question3" onClick="afficheQuestion4()" /><br />
les arts<input type="radio" value="les arts" name="question3" onClick="afficheQuestion4()" /><br />
la nature<input type="radio" value="la nature" name="question3" onClick="afficheQuestion4()" /><br />
la vie en société<input type="radio" value="la vie en société" name="question3" onClick="afficheQuestion4()" />
</p></div>

<!-- ... -->
<!-- ... -->
<button type="submit" name="valider"><img src="images/valider.gif" alt="bouton de validation" /></button>
</form>

<script language="JavaScript">
<!--
//pour que les fonctions s'initialise et comme rien ne sera choisi les div ne s'afficheront pas
	afficheQuestion2();
        afficheQuestion3();
// -->
</script>
</body>
</html>


Dans les chose qui n'allaient pas on avait :
- des oublis de "ponctuation" dans le code javascript, il manquait des ; et des ' ce qui faisait planter le code.
- dans tes input tu mets value="ReponseX", je ne sais pas comment tu traite ca derrière mais dans l'état quand tu cliques sur valider cela va te renvoyer des "ReponseX" via la variable $_POST['questionX_X'].
- tu rajoutais des balises <p> après tes questions, qui ne servaient pas puisque tu les avais ouverte juste avant, et surtout tu ne les fermais pas.
- des oublis de <br /> après certaines réponses
(les 2 dernières ne sont pas bien grave mais celle qui faisait planter ton code c'est surtout la première)

En parlant du code javascript, je l'ai pas mal modifié car ta question 3 était généré par énormément de possibilité et ca aurait fait un code long comme le bras de M. Guili donc j'ai rajouté des boucle for et renommé les question pour plus de facilité, de clarté et surtout pour que ca marche avec les boucles for :P

Comme avant tu peux copier coller le code pour tester ce que ca donne.
Par contre j'ai encore une fois fais le minimum, c'est à dire que si par exemple je répond à une des deuxièmes questions cela va faire apparaitre la troisième (jusque là c'est normal ^^) mais si je change d'avis et change ma réponse de la première question, la deuxième vas se modifier en conséquence (c'est aussi normal :P) mais la troisième va rester (là c'est plus bon).
Pour palier à ca tu as la solution d'ajouter
cache('question3');
dans la fonction
afficheQuestion2();
. Mais si tu fais ca tu vas devoir le faire pour toutes les questions. si tu as 10 questions tu devras faire
afficheQuestion2(){
cache('question3');
cache('question4');
cache('question5_1');
cache('question5_2');
cache('question5_3');
...etc
et le reste du code
}
afficheQuestion3(){
cache('question4');
cache('question5_1');
cache('question5_2');
cache('question5_3');
...etc
et le reste du code
}

C'est pas extra. d'autant plus que si il décide de revenir comme avant il va devoir tout recliquer de nouveau alors que ces précédents choix seront indiqués, je veux dire les puces radio seront remplies (fait des tests pour comprendre ce que je veux dire car c'est pas facile à expliquer ^^).

A toi de voir ce que tu veux faire.

Sinon j'ai pas trop compris ta question sur les résultats.
Et rien à voir mais je t'ai donné cette solution car tu fais ton questionnaire en php mais je pense qu'il serait plus sympa si tu le faisais en flex avec Adobe Flex Builder 3 qui à une licence gratuite pour les usages pédagogique et non commercial si tu en fait la demande.
1
Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 17
22 févr. 2010 à 00:24
La dernière partie de ton script est un peu étrange tu utilise la fonction afficheQuestion5() en la testant sur les réponses de la question 6

Mais de toute façon pour afficher les résultats ne passe pas par les fonctions.
Lors du clic sur le bouton valider la page va envoyer le contenu de ton formulaire sur la page cible indiqué dans l'attribut action de la balise <form>

Dans cette page tu récupère les valeurs du formulaire via les variable $_POST['question1'] $_POST['question2_0'] ... le contenu de ses variables est indiqué dans l'attribut value des balises <input>. Fait des test pour savoir lesquelles sont vides ou non ainsi tu récupère ce qui t'intéresses et tu traites le résultat.

Et je serais toi je mettrais quelque chose qui indique où en est l'utilisateur (question 1/6...) pour qu'il sache quand cliquer sur le bouton valider, et pour éviter les formulaires à moitié rempli tu peux faire apparaitre le bouton valider lors du clic sur la question 6 en mettant le bouton valider dans la même <div> que la dernière question, comme ca :
<div id="question6"><p>question 6/6 : blablabla ?<br />
oui blablabla je ne saurais dire mieux<input type="radio" value="oui blablabla je ne saurais dire mieux" name="question6" /><!-- ici le onClick ne sert plus car rien à faire de plus lors du choix de la dernière question --><br />
non bliblublbubla me semple plus juste<input type="radio" value="non bliblublbubla me semple plus juste" name="question6" /></p>
<button type="submit" name="valider" ><img src="images/valider.gif" alt="bouton de validation" /></button>
</div>


Par contre reste le problème des mauvais choix dont je parlais plus haut, il faudrait que tu trouves un moyen pour "décocher" les réponses des questions inutiles si l'utilisateur est revenu en arrière. Car le submit du bouton valider envoie toutes les donnée, même vide, mais si l'utilisateur a répondu à la question 2_1 puis a changé son choix dans la 1 et à répondu à la 2_2 les deux valeurs (2_1 et 2_2) seront retournées.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
23 févr. 2010 à 21:25
Lors du clic sur le bouton valider la page va envoyer le contenu de ton formulaire sur la page cible indiqué dans l'attribut action de la balise <form>

Dans cette page tu récupère les valeurs du formulaire via les variable $_POST['question1'] $_POST['question2_0'] ... le contenu de ses variables est indiqué dans l'attribut value des balises <input>. Fait des test pour savoir lesquelles sont vides ou non ainsi tu récupère ce qui t'intéresses et tu traites le résultat.

Bonjour!
J'aimerais savoir si ma page de résultats devra se nommer www.resultats.php (fichier php où les $_post seront stockés) ou si ma page www.resultats.html ira chercher les données dans un fichier résultats.php (comment on fait le lien entre les deux?)

De plus, je rencontre des difficultés pour attribuer des variables aux réponses proposées, et ainsi pouvoir leur donner une valeur, exemple:

<div id="question1"><p>Vous vous retrouvez dans un autre monde et vous pouvez votre style de vie... Que choisiriez-vous entre:<br />
Sage<input type="radio" value="Sage" name="question1" onClick="afficheQuestion2()" /><br />
Guerrier<input type="radio" value="Guerrier" name="question1" onClick="afficheQuestion2()" /><br />
Artisan<input type="radio" value="Artisan" name="question1" onClick="afficheQuestion2()" /><br />
Je ne sais pas<input type="radio" value="Je ne sais pas" name="question1" onClick="afficheQuestion2()" />
</p></div>

je voudrait que:
$reponse1_0='sage'
$reponse1_1='guerrier'
$reponse1_2='artisan'
$reponse1_3='je ne sais pas'

et ainsi:
$reponse1_0=10 points
$reponse1_1=20 points
etc.

et:
$resultat=('$reponse1_0'+'$reponse1_1'.........)

Est-ce que ma structure est fonctionnelle?
merci :)
1
Eleth Messages postés 130 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 26 février 2010 17
24 févr. 2010 à 09:19
Tu la nomme comme tu veux il faut juste que se soit en php et qu'elle corresponde à la page indiqué dans la balise <form> à l'attribut action :
<form action="ICI" method="post" name="quizz" id="quizz">

Par contre pour l'exemple de la question 1, pour récupérer le choix tu dois faire :
$reponse1 = $_POST['question1'];
$reponse1 contiendra soit sage, soit guerrier, soit artisan, soit je ne sais pas
Pour atribuer des points tu peux la tester :
if(reponse1=="sage"){$points = $points + 10;}
if(reponse1=="guerrier"){$points = $points + 20;}
...
1
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
26 févr. 2010 à 04:24
Bonjour :)
merci pour tout!!!!!!!!!!!

voici une partie du script de ma page questionnaire1.php
je crois que j'ambitionne un peu avec les ''if'' .....voici le script:

<? php
if($points<40)
echo'waguey';
elseif($points>40&&$points<=210)
echo'kah';
elseif($points>210&&$points<=330)
echo'Trimai';
elseif($points>330&&$points<=520)
echo'houma';
elseif($points>520&&$points<=630)
echo'Seghpaï';
elseif($points>630&&$points<=690)
echo'Seneich';
elseif($points>690&&$points<=750)
echo'Nattan';
elseif($points>750&&$points<=810)
echo'Chevalier';
elseif($points>810&&$points<=870)
echo'Kapy';
elseif($points>870&&$points<=930)
echo'Sorcier';
elseif($points>930&&$points<=1000)
echo'Karashan';
elseif($points>1000&&$points<=1030)
echo'Noki';
else
echo'Kys';
?>

Évidemment il semble y avoir une erreur de syntaxe...Vois-tu quelque chose qui cloche?
0
ze-life-of-quent1 Messages postés 1582 Date d'inscription lundi 8 février 2010 Statut Membre Dernière intervention 17 octobre 2015 776
20 févr. 2010 à 07:13
Bonjour, (si j'ai bien compris votre question...)
le mieux est d'aller voir sur le site du zér0 (surtout extract($_POST) et elseif).
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
20 févr. 2010 à 22:29
merci beaucoup pour le conseil xx
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
20 févr. 2010 à 22:31
merci d'avoir pris le temps de m'expliquer tout ça,c'est très gentil à toi, je vais commencer avec tout ce que tu m'as transmis, en espérant que j'en arrive a quelque chose :)
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
21 févr. 2010 à 04:18
wow wow !!!
merci Eleth, je ne pourrai jamais assez te remercier, ça fonctionne !!!!!

Il me reste un seul truc à savoir, pour les résultats;
-je mets les lignes ex.: $resultat=$r1+$r2+$r3.........if $resultat<5 echo 'blabla' à la toute fin du code?
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
21 févr. 2010 à 05:02
Voici une partie de mon script qui ne fonctionne pas ( il affiche toutes les questions en même temps)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>quizz</title>
</head>
<!-- le code java script -->
<SCRIPT language="javascript">
<!--
//cache les éléments en fonction du navigateur et de la div
function cache(nom) {
if (document.getElementById) {
document.getElementById(nom).style.display = 'none';
}
else {
if (document.layers) {
document.layers[nom].display = 'none';
}
else {
document.all[nom].style.display = 'none';
}
}
}
//Affiche les éléments en fonction du navigateur et de la div
function affiche(nom) {
if (document.getElementById) {
document.getElementById(nom).style.display = 'block';
}
else {
if (document.layers) {
document.layers[nom].display = 'block';
}
else {
document.all[nom].style.display = 'block';
}
}
}

//affiche la question 2 correspondante au choix de la 1
function afficheQuestion2(){
if(document.quizz.question1[1].checked){
affiche('question2');
cache('question3''question4''question5');
}else{
if(document.quizz.question1[2].checked){
affiche('question3');
cache('question2'.question4''question5');
else{
if(document.quizz.question1[3].checked){
affiche('question4');
cache('question2');
cache(question3');
cache('question5');
else{
if(document.quizz.question1[4].checked){
affiche('question5');
cache('question2')
cache(question3')
cache('question4');
}else{
cache('question2');
cache('question3');
cache('question4');
cache('question5');
}
}
}
//-->
</SCRIPT>

<!-- puis le corps de la page -->
<body>
<!-- ... -->
<!-- ... -->
<form action="questionnaire1.php" method="post" name="quizz" id="quizz">

<div id="question1"><p>Vous vous retrouvez dans un autre monde et vous pouvez votre style de vie... Que choisiriez-vous entre:<p><br />


Sage<input type="radio" value="Reponse1" name="question1" onClick="afficheQuestion2()" /><br />
Guerrier<input type="radio" value="Reponse2" name="question1" onClick="afficheQuestion3()" />
Artisan<input type="radio" value="Reponse3" name="question1" onClick="afficheQuestion4()" /><br />
Je ne sais pas<input type="radio" value="Reponse4" name="question1" onClick="afficheQuestion5()" />
</p></div>
<div id="question2"><p>Si j’étais un sage, ma sagesse viendrait de quelle source parmi les suivantes<p>
<br />
clairvoyance<input type="radio" value="Reponse5" name="question2" onClick="afficheQuestion6()" /><br />
nature<input type="radio" value="Reponse6" name="question2" onClick="afficheQuestion6()" />
méditation<input type="radio" value="Reponse7" name="question2" onClick="afficheQuestion6()" /><br />
intuition<input type="radio" value="Reponse8" name="question2" onClick="afficheQuestion6()" />
</p></div>
<div id="question3"><p>Si j’étais un guerrier, ma principale qualité serait <p>
<br />

vif<input type="radio" value="Reponse9" name="question3" onClick="afficheQuestion6()" /><br />
frt<input type="radio" value="Reponse10" name="question3" onClick="afficheQuestion6()" />
adroit<input type="radio" value="Reponse11" name="question3" onClick="afficheQuestion6()" /><br />
doué<input type="radio" value="Reponse12" name="question3" onClick="afficheQuestion6()" />
honorable<input type="radio" value="Reponse13" name="question3" onClick="afficheQuestion6()" />

</p></div>
<div id="question4"><p>Si j’étais un artisan, je serais<p><br />

fromager<input type="radio" value="Reponse14" name="question4" onClick="afficheQuestion3()" /><br />
ébéniste<input type="radio" value="Reponse15" name="question4" onClick="afficheQuestion3()" />
</p></div>
<div id="question5"><p>Je ne sais pas ce que j'aimerais être parce que<p><br />

Il me faudrait plus de temps pour y penser<input type="radio" value="Reponse16" name="question22" onClick="afficheQuestion3()" /><br />
Je ne sais pas trop ce que je désire<input type="radio" value="Reponse17" name="question22" onClick="afficheQuestion3()" />
</p></div>
<div id="question3"><p>  Présentement, qu’est-ce qui m’intéresse le plus entre<p>
<br />

la spiritualité<input type="radio" value="Reponse18" name="question3" onClick="afficheQuestion11()" /><br />
les arts<input type="radio" value="Reponse19" name="question3" onClick="afficheQuestion11()" />
la nature<input type="radio" value="Reponse20" name="question3" onClick="afficheQuestion11()" /><br />
la vie en société<input type="radio" value="Reponse21" name="question3" onClick="afficheQuestion11()" />
</p></div>



Est-ce que vous voyez pourquoi ça n'affiche pas les questions selon la réponse donnée?
(merci encore Eleth pour ce script, il marchait parfaitement jusqu'à ce que j'y apporte mes modifications ..)
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
21 févr. 2010 à 22:55
merci merci merci!!!!!!!!!!!!!
c'est vraiment super d'avoir pris le temps de m'expliquer, et je trouve qu'avec tes commentaires, ça devient compréhensible même pour moi ;)
Pour le résultat, j'essaie de définir $résultat comme une addition des $réponses, ayant préalablement défini la valeur attribuée à chaque $réponse. Je sais pas ce que ça va donner, mais je vais tenter de trouver un tutoriel à ce sujet...

Dans le script-qui-m'a-sauvé-la-vie-que-tu-m'as-donné lol quand j'arrive à la dernière question, ça ne marche pas:
function afficheQuestion6(){
cache('question6_0');
cache('question6_1');
cache('question6_2');
cache('question6_3');
for (i=0; i<4; i++){
if(document.quizz.question5[i].checked){
affiche('question6_'+i);
}
}
}
function afficheQuestion5(){
cache('Resultats');
for (i=0; i<4; i++){
if(document.quizz.question6_0[i].checked){
affiche('Resultats');
}
}
for (i=0; i<4; i++){
if(document.quizz.question6_1[i].checked){
affiche('Resultats');
}
}
for (i=0; i<4; i++){
if(document.quizz.question6_2[i].checked){
affiche('Resultats');
}
}
for (i=0; i<4; i++){
if(document.quizz.question6_3[i].checked){
affiche('Resultats');
}
}

C'est sûrement une erreur élémentaire, mais vraiment je vois pas.......
0
émilie2612 Messages postés 8 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 26 février 2010 1
22 févr. 2010 à 20:01
merci pour ta réponse détaillée et bien expliquée, ainsi que pour tes suggestions :)
j'applique tes conseils et je pense que mon quiz sera enfin fonctionnel!!
Encore merci mille foisxx
0