Un petit Quiz avec un formulaire d' inscripti

Fermé
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012 - 8 mars 2012 à 10:41
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 - 9 mars 2012 à 12:40
Bonjour,
je suis débutant en php... je dois faire un petit Quiz avec un formulaire d' inscription, j' ai déjà fais une partie du travail mais j suis BLOQUER !!!!!!!!!!!!!
Il me faut un code en php qui pourrai m' afficher les réponses de mon Quizz tout en me disant combien de point l'utilisateur a obtenu mais a afficher sur une nouvelle page je vous donne ce que j'ai déjà commencer:::

<html> 
			<head>
			
			<link rel="stylesheet" href="style.css" />
				<title>A vous de jouer!!!</title> 
			</head> 
	<body> 
			<form action="totale.php" method="post"> 
				<div align=center>
				<h1><img src="europa5.jpg" class="imageflottante" alt="imageflottante"></h1>
					
							<p class="dessous">Q1) Combien de pays étaient membres de la Communauté Européenne fin 1986 ?</p>
                             
							  <span class="ombre"><input type="radio" name="cmb" value="9" id="Q1"  /> <label for="9">9</label> <br/></span>
							  <span class="ombre"><input type="radio" name="cmb" value="12" id="Q2" /> <label for="12">12</label> <br/></span>
							  <span class="ombre"><input type="radio" name="cmb" value="15" id="Q3"  /> <label for="15">15</label><br/></span>
							  
							 <p>Q2) Que signifie l'abréviation "UEM" ?</P> 
							  <span class="ombre"><input type="radio" name="UEM" value="Union economique et monaitaire" id="Q4"  /> <label for="Union economique et monaitaire">Union economique et monaitaire</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UEM" value="Union européenne monaitaire" id="Q5" /> <label for="Union européenne monaitaire">Union européenne monaitaire</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UEM" value="Union economique et militaire" id="Q6"  /> <label for="Union economique et militaire">Union economique et militaire</label></span>
							
							<p>Q3) Quels sont les deux pays qui ne rejoignent pas l'"UE" en 2004 ?</P>
							  <span class="ombre"><input type="radio" name="UE" value="1" id="Q3"  /> <label for="la Roumanie et la Bulgarie">la Roumanie et la Bulgarie</label><br/></span> 
							  <span class="ombre"><input type="radio" name="UE" value="2" id="Q3" /> <label for="La Hongrie et Chypre">La Hongrie et Chypre</label> <br/></span>
							  <span class="ombre"><input type="radio" name="UE" value="3" id="Q3"  /> <label for="La Slovénie et la Slovaquie">La Slovénie et la Slovaquie</label><br/></span> 
							  
							<p>Q4) En quelle année fût créée la CEE(communauté économique européenne ) et la CEEA(euratom) ?</P>
							  <span class="ombre"><input type="radio" name="reunion" value="1" id="Q7"  /> <label for="1986">1986</label> <br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="2" id="Q8" /> <label for="1996">1996</label><br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="3" id="Q9"  /> <label for="1945">1945</label> <br/></span>
							  <span class="ombre"><input type="radio" name="reunion" value="4" id="Q10" /> <label for="1950">1950</label></td></span>
							  
							  <p>Q5) Où se trouve le Parlement européen ?</P>
							  <span class="ombre"><input type="radio" name="parlement" value="1" id="Q11"  /> <label for="Autriche">Autriche</label> <br/></span>
							   <span class="ombre"><input type="radio" name="parlement" value="2" id="Q12" /> <label for="Belgique">Belgique</label><br/></span>
							    <span class="ombre"><input type="radio" name="parlement" value="3" id="Q13"  /> <label for="France">France</label> <br/></span>
							  <span class="ombre"><input type="radio" name="parlement" value="4" id="Q14" /> <label for="Allemagne">Allemagne</label></td><br/><br/></span>
					
							<input type="submit" value="Valider">
							
							<?php
							if(isset($_POST['Valider']))
							{
A voir également:

12 réponses

AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 11:44
Bonjour,

Le code php sera à mettre dans la page totale.php.
Vous devez récupérer tous vos réponses avec la variable $_POST (par exemple $_POST['cmb'] pour avoir la valeur donné par la première question. Vous devez faire ça pour chaque question et comparer avec la bonne réponse.
Si la réponse est correcte, incrémenter une variable qu'on affichera à la fin avec un echo.
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
8 mars 2012 à 12:47
Merci pour la réponse rapide.
J'ai essayer de faire quelque chose en suivant votre conseil donc j' ai bien mis un code php dans la page totale.php mais ça ne fonctionne pas correctement
donc j' aurai encore besoin de vos conseil ou votre solution ;)
merciiiiii

Voila le code :

$points =0;
$value12	  					  = $_POST['12'];
$valueUnioneuropéennemonaitaire  = $_POST['Unioneuropéennemonaitaire']; $valuelaRoumanieetlaBulgarie          = $_POST['laRoumanieetlaBulgarie'];
 $value3      					  =$_POST['3'];
 $value2      					  =$_POST['2'];
								 
$reponse1						  =$_POST["cmb"]; 
$reponse2						  =$_POST["UEM"]; 
$reponse3						  =$_POST["UE"];                       $reponse4						  =$_POST["reunion"]; 
$reponse5				     	  =$_POST["parlement"];
								  
								 
if ($reponse1 == $value12 ) 
								 {
								  $points ++; 
								 }
 if ($reponse2 == $valueUnioneuropéennemonaitaire ) 
								  {
								   $points ++;
								  }                                                             if ($reponse3 == $valuelaRoumanieetlaBulgarie) 
								  {
								   $points ++; 
						          }
 if ($reponse4 == $value3 ) 
								 {
								  $points ++;
								 }
if ($reponse5 == $value2 ) 
								 {
								  $points ++; 
								 }
echo 'Vous avez un total de : '.$points.'';

0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
Modifié par AssassinTourist le 8/03/2012 à 13:48
Pas besoin de définir autant de variable au début.

$points = 0; 
if (isset($_POST["cmb"]) && $_POST["cmb"] == 12 ) { 
  $points ++;  
} 
[...] 
echo "Vous avez un total de : ".$points; 


isset(variable) permet de savoir si la variable existe. Si jamais aucune réponse n'est cochée dans le formulaire, il n'ira pas plus loin. Sinon il vous mettra une erreur dans votre if vu qu'il ne connaîtra pas la variable.
Pour les bonnes réponses, on ne les récupère pas avec un POST, mais simplement en les mettant à la main.
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
8 mars 2012 à 18:40
Merci énormément ça marche.

Mais j' aurai encore une petite question concernant le formulaire
il passe a la page du Quizz même si les champs ne sont pas rempli alors que j' ai fais la demande qu'il prévienne l' utilisateur au cas ou il ne sont pas rempli
je vous passe le code::

		<?php
			if (isset ($_POST['Envoyer'])) 
			{
				if(isset($_POST['nom'])) $nom	= $_POST['nom'];
				else $nom = '';
				if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];
				else $prenom = '';

				if ($nom=='' && $prenom=='')
						{
				echo 'Veuillez remplir tout les champs';
						}
				else
						{
					echo' Merci pour les informations et a vous de jouer';
						}	
						
						
						
			}
	    ?>
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 18:48
Pour être sûr de comprendre...

Vous avez une page d'inscription avec nom et prenom
Une page avec ce test php pour savoir si nom et prenom sont remplis
Et une dernière page avec le quizz ?
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
8 mars 2012 à 21:16
excusez moi
non le formulaire est avec le code php que je vous est donner.
je vais vous donner le code au complet
<html
		<head>
		<link rel="stylesheet" href="style.css" />
		<title>Page d'inscription</title></head>
	<body class="image">
	
			<div align="center" style="Helvetica"><br/></br/></br/><br/>
		<h1 style= "text-align: center; color: #ffffff;">Inscrivez-vous et jouer</h1>
		<form name="inscription" method="POST" action="jeux2.php">
				<input type=hidden name=subject value=contact>
				<span class=plus>nom:
				<td><input type="text" name="nom" >
				prenom:
				<input name="prenom" type="text" value="">
				email:
				<input type="text" name="email" title="entrer une adresse valide" value="@" /></span>
			    <input type=submit value=Envoyer >  <input type="reset" value="Annuler" >
			
				
				
				<select name="choix">
				<option value="Allemagne">Allemagne</option>
				<option value="Autriche"> Autriche </option>
				<option value="Belgique"> Belgique </option>
				<option value="Danemark"> Danemark </option>
				<option value="Espagne"> Espagne </option>
				<option value="France">	  France </option>
				<option value="Pays-Bas"> Pays-Bas </option>
				<option value="Suisse"> Suisse </option>
				<option value="Suède"> Suède </option>
				
				
				</select>
		
				</form>
		<?php
			if (isset ($_POST['Envoyer'])) 
			{
				if(isset($_POST['nom'])) $nom	= $_POST['nom'];
				else $nom = '';
				if(isset($_POST['prenom'])) $prenom = $_POST['prenom'];
				else $prenom = '';

						if ($nom=='' && $prenom=='')
						{
							echo 'Veuillez remplir tout les champs';
						}
						else
						{
							echo' Merci pour les informations et a vous de jouer';
						}	
						
						
						
			}
	    ?>
0

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

Posez votre question
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
8 mars 2012 à 21:18
et en plus de la page avec le Quizz j' ai une autre page avec le totale
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
8 mars 2012 à 22:21
Je sais pourquoi et j'ai plusieurs solutions en tête, mais elles sont soit très moches (passer les variables post en cookies ou en session à un moment), soit complexes (javascript, ajax)
Arf :$
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
8 mars 2012 à 22:51
Bien OK,

merci beaucoup en tout cas, mais je vais faire sans alors je voulais également créé une base de donnée pour enregistrer les utilisateurs mais ça me prend un temps fou :()
Incroyable quand on ne connais pas les trucs et astuces pour aller plus rapidement.
Merci énormément pour votre compréhension et à bientôt.
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 08:50
Eh bien pendant la nuit, j'ai eu une révélation pour feinter pour faire ce que tu veux faire (obliger le gugusse à mettre son nom et son prenom) Est-ce que ça te tente toujours ?
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 09:56
Dans ton bouton de submit, tu rajoutes ceci :
<input type=submit value=Envoyer disabled="disabled" id="envoyer" >
Ce qui va griser ton bouton (ils ne pourront pas cliquer dessus) et on rajouter un id pour pouvoir le récupérer plus tard dans la page.

Et pour tes champs nom et prenom, je rajoute un id (il peut être le même que le name, ça ne dérange pas) et un petit code javascript tout simple.
<input type="text" name="nom"  id="nom" onchange="valid_form()">

En gros, lorsque la valeur de l'input va changer, il va appeler la fonction javascript valid_form()

Et donc en javascript, tu mets ce code au début de ta page. Tu le mets au début de ton <body> :
<script language="Javascript">
  function valid_form(){
    if((document.getElementById('nom').innerHTML != '') && (document.getElementById('prenom') != '')){
      document.getElementById('envoyer').disabled = false;
    }
  }
</script>

En gros, il va vérifier que les éléments dans ta page qui ont les id nom et prenom ne sont pas vides. Si c'est bon, alors il va activer le bouton d'envoi du formulaire.

Et tu enlèves ton code php après le if (isset ($_POST['Envoyer']))
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
9 mars 2012 à 11:26
Merci encore, je l'ai tester
donc le bouton envoyer devient gris mais quand je rempli les champs il ne reprend pas ses fonctions pour passer a la page suivante ca dois être quelque chose de minime merci encore
<html
		<head>
		<link rel="stylesheet" href="style.css" />
		<title>Page d'inscription</title></head>
	<body class="image">
			<script language="Javascript">
		  function valid_form(){
			if((document.getElementById('nom').innerHTML != '') && (document.getElementById('prenom') != '')){
			  document.getElementById('envoyer').disabled = false;
			}
		  }
</script
	
			<div align="center" style="Helvetica"><br/></br/></br/><br/>
		<h1 style= "text-align: center; color: #ffffff;">Inscrivez-vous et jouer</h1>
		<form name="inscription" method="POST" action="jeux2.php">
				<input type=hidden name=subject value=contact>
				<span class=plus>nom:
				<td><input type="text" name="nom"  id="nom" onchange="valid_form()">
				prenom:
				<input type="text" name="nom"  id="prenom" onchange="valid_form()">
				email:
				<input type="text" name="email" title="entrer une adresse valide" value="@" /></span>
			   <input type=submit value=Envoyer disabled="disabled" id="envoyer" >  <input type="reset" value="Annuler" >
			
				
				
				<select name="choix">
				<option value="Allemagne">Allemagne</option>
				<option value="Autriche"> Autriche </option>
				<option value="Belgique"> Belgique </option>
				<option value="Danemark"> Danemark </option>
				<option value="Espagne"> Espagne </option>
				<option value="France">	  France </option>
				<option value="Pays-Bas"> Pays-Bas </option>
				<option value="Suisse"> Suisse </option>
				<option value="Suède"> Suède </option>
				
				
				</select>
		
				</form>
		<?php
			if (isset ($_POST['Envoyer'])) 
			{
				
						
						
						
			}
	    ?>

	</body>
</html>
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
Modifié par AssassinTourist le 9/03/2012 à 11:35
Tu peux enlever le :
<?php 
   if (isset ($_POST['Envoyer']))  
   { 
     
       
       
       
   } 
     ?>


Mais attends, laisse-moi voir
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 11:40
Oui, pardon, j'ai fait quelques fautes dans ton javascript. Je te redonne la fonction :
function valid_form(){
			if((document.getElementById('nom').value != '') && (document.getElementById('prenom').value != '')){
			  document.getElementById('envoyer').disabled = false;
			}
		  }


Vu que les valeurs de prenom et nom sont dans des input, c'était .value qu'il fallait et non .innerHTML
J'ai testé le code.
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
9 mars 2012 à 11:47
Merci infiniment
!!!! CA MARCHE ; )
vraiment heureusement que t la je sais pas comment j' aurai fais
mais a bientôt
merci énormément si je peux faire quelque chose pour toi n' hésite pas a me contacter
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
9 mars 2012 à 11:50
MERCIIIIII
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 11:58
De rien, ça m'a fait plaisir de t'aider =)
Pense à mettre ton sujet en résolu !
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
9 mars 2012 à 12:38
En" résolu" c.a.d ?
et comment ?stp
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
9 mars 2012 à 12:40
En-dessous de ton titre de post, tu dois avoir le lien "Marquer ce sujet comme résolu" =)
0
cast006 Messages postés 11 Date d'inscription jeudi 8 mars 2012 Statut Membre Dernière intervention 9 mars 2012
9 mars 2012 à 12:39
: ()
0