Probleme QCM

Résolu
kreyzix Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
kreyzix Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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