Probleme QCM

Résolu/Fermé
kreyzix Messages postés 3 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 19 mai 2016 - 19 mai 2016 à 12:19
kreyzix Messages postés 3 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 19 mai 2016 - 19 mai 2016 à 18:01
Bonjour a tous,

Voici mon problème: dans le cadre d'un prjet scolaire nous avons créé un site Web. Nous y avons ajouté un QCM servant de bilan à la visite de celui-ci. Le problème est que, une fois le QCM intégré au site lorsque l'on valide les réponses, une nouvelle page s'ouvre alors que je veux que juste que le code PHP du QCM s'execute tout en restant sur la page en question.

Voici le QCM seul:


Lorsque je valide les réponse ça fait ceci:



Je voudrai que ça fasse la même chose une fois le QCM intégré au site le problème c'est qu'une fois les réponses validées une nouvelle page s'ouvre et il y a un problème d'affichage. Voici le QCM intégré au site:



Et voici ce que ça fait une fois les réponses validées:



J'éspere que vous avez compris ma demande et que quelqu'un m'aidera (j'ai déja essayé de résoudre le problème mais sans succès sûrement dû au fait que je suis débutant en PHP)

Au passage si vous voulez le code PHP du QCM le voici:

<?php
?>
<html>
<head>
<title>QCM SW</title>
<!-- Pour empêcher le retour en arrière avec le bouton BACK -->
<script type="text/javascript">
function noBack(){window.history.forward()}
noBack();
window.onload=noBack;
window.onpageshow=function(evt){if(evt.persisted)noBack()}
window.onunload=function(){void(0)}
</script>
</head>
<body bgcolor="#FFFFF2">

<center><table border="1" cellpadding="5" bgcolor="#000000"><tr><td>Questionnaire du jeune Padawan</td></tr></table></center><br>

<form method="post" action="QCMBilan.php">

<?php

$question[0]="Quelle est la couleur de Dark Vador ?";
$choix[0]=array("blanc","bleu","rouge","noir");
$bonne_rep[0]=$choix[0][3];

$question[1]="Quel est la couleur du sabre de Windoo ?";
$choix[1]=array("vert","violet","bleu");
$bonne_rep[1]=$choix[1][1];

$question[2]="Quelle est la planete glaciaire dans l'univers Star Wars ?";
$choix[2]=array("Cold","Tatooin","Hoth","Corusant");
$bonne_rep[2]=$choix[2][2];

$question[3]="Quel est le vaisseau emblematique des rebelles ?";
$choix[3]=array("Snowing","Xwing","Wingsuit","YWing");
$bonne_rep[3]=$choix[3][1];
$nbquest=sizeof($question);
$score=0;


if (isset($_POST["retour"]))
{
echo "<br><center>CORRIGE<br>(Allez consulter votre <a href=\"#sco\">score</a> au bas de cette page)</center><br>";}


for ($i=0;$i<$nbquest;$i++) // nombre de tableaux
{
$a_repondu[$i] = false;
$nbchoix=sizeof($choix[$i]);
$no=$i+1;
echo "<table border=\"1\" width=\"100%\" bgcolor=\"#000000\">"; // couleur case question
echo "<tr>";
echo "<td colspan=\"$nbchoix\">";
echo "<center><h3><font color=\"#FF0000\">$no</font></h3></center>"; // couleur numero question
echo "<center>$question[$i]</center>";
echo "</td>";
echo "</tr>";
if (isset($_POST["retour"]))
{
if (isset($_POST["bt"][$i])) // si bouton coché
{
$bt[$i] = $_POST["bt"][$i];
}
else $bt[$i] = "";
}
else $bt[$i] = "";

for ($j=0;$j<$nbchoix;$j++) // nombre de colonnes
{
echo "<tr>";
echo "<td align=\"left\" bgcolor=\"#0000E7\">"; // couleur cases reponse
echo "<input type=\"radio\" name=\"bt[$i]\" value=\"bt[$j]\" ";
if ($bt[$i]=="bt[$j]")
{
echo "checked";
$k=$j;
$a_repondu[$i]=true;
}
echo ">".$choix[$i][$j];
echo "</td>";
echo "</tr>";
}

echo "<tr>";
echo "<td colspan=\"$nbchoix\" bgcolor=\"#ED9374\">"; // couleur reponse

if ($a_repondu[$i])
{
if ($choix[$i][$k]==$bonne_rep[$i])
{
$mess[$i]="Exact";
$score++;
}
else
{
$mess[$i]="Non c'est $bonne_rep[$i]";
}
echo "<center>".$mess[$i]."</center>";
}

echo "</td>";
echo "</tr>";
echo "</table>";
echo "<br>";
}
if (isset($_POST["retour"]))
{
echo "<br><br><center><table border=\"1\" cellpadding=\"5\" bgcolor=\"#FFC9AE\"><tr><td><a name=\"sco\">Score : $score/$nbquest</td></tr></table></center>";
}
else
{
echo "<input type=\"hidden\" name=\"retour\" value=\"1\">";
echo "<br><br><center><input type=\"submit\" value=\"Confirmer\"></center>";
}
?>
</form>
</body>
</html>

Merci de votre attention, en ésperant une solution ^^

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
19 mai 2016 à 16:34
Salut,

Quelle est l'URL affichée dans le navigateur lors de l'affichage du QCM avant de valider celui-ci ? Et quelle est l'URL une fois le QCM validé ?

Comment est inclus le code du QCM sur le site ?

Bonne journée,
0
kreyzix Messages postés 3 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 19 mai 2016
Modifié par kreyzix le 19/05/2016 à 18:02
Bonjour, tout d'abord je tiens à m'excuser car j'ai trouvé la solution, la bonne nouvelle c'est que c'est grâce à toi: en fait j'avais un fichier PHP qui correspondait à une page du site dans laquelle j'avais inséré la commande "
<?php include("QCMBilan.php"); ?>
" le soucis c'est que dans mon fichier code du QCM j'avais mis "
<form method="post" action="QCMBilan.php">
" donc forcément quand je valisais ca me renvoyait au QCM seul. En observant les URL grâce à ton message j'ai tilté. J'ai donc finalement changé cette ligne pour
<form method="post" action="PageduQCM.php">
et ca marche nickel. Merci beaucoup je suis débutant en informatique donc observer les URL n'est pas un reflexe pour moi. Encore merçi en tout cas et bonne soirée !!!!
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
19 mai 2016 à 16:41
Bonjour,

1 - **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


2 - Que contient le fichier QCMBilan.php ?
Est-ce le code que tu nous as collé ?
Si oui..commence par modifier le "action" de ton form
<form method="post" action="QCMBilan.php">

par :
<form method="post" action="">


J'ai l'impression que tu nous a mis le code de la page de "validation" du formulaire et pas le formulaire (le qcm) lui même...
Sur quelle page se situe t-il ?
Si tu veux rester sur la même page ... tu dois mettre le code de validation DANS le même fichier que celui contenant le QCM et donc mettre l'attribut action du form à vide (voir ci-dessus).
Ainsi .. tu restes au même endroit;....
0
kreyzix Messages postés 3 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 19 mai 2016
19 mai 2016 à 18:01
Je n'ai pas réellement compris mais le problème est résolu cela venait effectivement de la commande <form...> en validant, le QCM revenait sur lui même car j'avais mis comme dans ton message j'ai juste dû changé la partie QCMbilan.php par le fichier de la page. Depuis tout ce temps je cherchais alors qu'en fait c'etait tout bête. Je n'ai pas encore les bons reflexes en informatique. Merci en tout cas et bonne soirée. (Désolé de ne pas avoir utilisé la coloration syntaxique je ne suis inscrit que récemment sur le site je ne savais pas).
0