IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Inserer une condition


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Par défaut Inserer une condition
    bonjour
    j’essaye d’intégrer une condition basique au code ,mais ma condition ne fonctionne pas ,étant débutant je ne comprend pas pourquoi, j'ai mentionner dans le code l'endroit ou sa bloque par "mon probleme est ici ,merci pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    $array = array('1'=>array('libelle'=>'je vois grace à ','img'=>null,
    	'choix'=>array
    		('mes yeux.'=>true,
    		'ma tete.'=>false,
    		'mon nez.'=>false)),
    	'2'=>array('libelle'=>'je sens grace à . ','img'=>Null,
    		'choix'=>array
    			('mon bras.'=>false,
    			'mon nez.'=>true,
    			'mon coude.'=>false)),
    	'3'=>array('libelle'=>'high kick dans la gueule grace à','img'=>Null,
    		'choix'=>array
    			('mon pied.'=>true,
    			'mon genoux.'=>false,
    			'mon orteil.'=>false)));
    echo "<form action='test.php' method='post'>";
    foreach($array as $num=>$question){
        echo '<h3>'.'QUESTION '.$num.'</h3>'.$array[$num]['img'].'<br />'.' -'.$array[$num]['libelle'].' :<br />';
        foreach($question['choix'] as $reponse=>$choix){
            echo '<input type="checkbox" name="choice['.$num.'][]"  value="'.$reponse.''.$choix.'">'.$reponse.'<br />';
        }
        echo '<p />';
    }
    echo'<input type="RESET" value="Effacer" />';
    echo'<input type="SUBMIT" name="btn_valid" value="Valider" />';
    echo'</form>';
    if(isset($_POST['choice'])){
    	print_r ($_POST['choice']); 
        foreach ($array as $num => $question){
            echo'<p />QUESTION '.$num.' - '.$array[$num]['libelle'].' : <br />';
            echo '--->vous avez repondu : ';
    // mon probleme est ici ************************************************		
    	if ($_POST["choice"]){
    		echo "la reponse est juste";
    	}
    	else{
    		echo "la reponse est fausse";
    	}
    //************************************************
        }
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà tu n'as pas besoin d'indiquer dans le formulaire si la réponse est bonne ou fausse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     foreach($question['choix'] as $reponse=>$choix){
            echo '<input type="checkbox" name="choice['.$num.'][]"  value="'.$reponse.'">'.$reponse.'<br />';
        }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    foreach ($array as $num => $question){
        echo'<p />QUESTION '.$num.' - '.$array[$num]['libelle'].' : <br />';
        echo '--->vous avez repondu : ';
     
        if(isset($_POST['choice'][$num])) {
              $reponse = $_POST['choice'][$num];
              echo $reponse;
     
              if ($array[$num]['choix'][$reponse] == TRUE) {
                    //bonne réponse
              }
              else {
                   // mauvaise réponse
              }
       }
    }
    Fais attention à tes dénominations.
    Un coup tu as mis "choice" un coup tu as mis "choix"
    Appeller un tableau "array" ce n'est pas génial.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Par défaut
    Salut sabotage et merci pour ton aide.
    helas le code ne fonctionne pas ,j'ai essayé de chercher l'erreur durant toute la soirée,mais je ne trouve pas.

    Citation Envoyé par sabotage Voir le message
    Déjà tu n'as pas besoin d'indiquer dans le formulaire si la réponse est bonne ou fausse :
    justement après j'ai l'intention de compter le nombre de 'true' grâce à la fonction count

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     foreach($question['choix'] as $reponse=>$choix){
            echo '<input type="checkbox" name="choice['.$num.'][]"  value="'.$reponse.'">'.$reponse.'<br />';
        }
    je constate que tu as enlever $choix à 'value' je pensais qu'il etait utile vu qu'il contiens 'true' et 'false'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    foreach ($array as $num => $question){
        echo'<p />QUESTION '.$num.' - '.$array[$num]['libelle'].' : <br />';
        echo '--->vous avez repondu : ';
     
        if(isset($_POST['choice'][$num])) {
              $reponse = $_POST['choice'][$num];
              echo $reponse;
     
              if ($array[$num]['choix'][$reponse] == TRUE) {
                    //bonne réponse
              }
              else {
                   // mauvaise réponse
              }
       }
    }
    Citation Envoyé par sabotage Voir le message
    Fais attention à tes dénominations.
    Un coup tu as mis "choice" un coup tu as mis "choix"
    Appeller un tableau "array" ce n'est pas génial.
    merci pour ces éléments je ferais la correction.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    je constate que tu as enlever $choix à 'value' je pensais qu'il etait utile vu qu'il contiens 'true' et 'false'
    C'est comme dans un questionnaire papier : tu n'écris pas Vrai/Faux a côté des réponses.
    Le candidat te rends sa copie (envoi le formulaire) et tu regardes dans ta grille de réponses ($array) si les réponses qu'il a données ($_POST['choice']) sont bonnes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti Avatar de kentaro
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 46
    Par défaut
    merci pour ces précisions sabotage

    concernant mon code ,le précédent me donner une erreur de type
    "Notice: Undefined variable: array in F:\LiberKey\MyApps\UwAmp\www\Nouveau dossier\test.php on line 62" (je travail directement sur ma cle usb)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    /********************************************************/
    $qcm = array('1'=>array(
    	'libelle'=>'je vois grace à ','img'=>null,
    	'choix'=>array(
    		'mes yeux.'=>true,
    		'ma tete.'=>false,
    		'mon nez.'=>false)),
    '2'=>array(
    	'libelle'=>'je sens grace à . ','img'=>Null,
    	'choix'=>array(
    		'mon bras.'=>false,
    		'mon nez.'=>true,
    		'mon coude.'=>false)),
    '3'=>array(
    	'libelle'=>'high kick dans la gueule grace à','img'=>Null,
    	'choix'=>array(
    		'mon pied.'=>true,
    		'mon genoux.'=>false,
    		'mon orteil.'=>false)));
    /********************************************************/
    echo "<form action='test.php' method='post'>";
    // $num= '1','2','3'.
    //$question='libelle','img','choix'.
    foreach($qcm as $num=>$question){
        echo '<h3>'.'QUESTION '.$num.'</h3>'.$qcm[$num]['img'].'<br />'.' -'.$qcm[$num]['libelle'].' :<br />';
    //$reponse='mes yeux','ma tete','mon nez' (pour la question 1)
    //$choix='true','false','false'
    	foreach($question['choix'] as $reponse=>$choix){
    		echo '<input type="checkbox" name="reponse_box['.$num.'][]"  value="'.$reponse.'">'.$reponse.'<br />';
    	}
    	echo '<p />';	
    }
    echo'<input type="RESET" value="Effacer" />';
    echo'<input type="SUBMIT" name="btn_valid" value="Valider" />';
    echo'</form>';
    /*****************************************************/
    if(isset($_POST['reponse_box'])){
    	//print_r ($_POST['reponse_box']); 
    	foreach ($array as $num => $question){
    		echo'<p />QUESTION '.$num.' - '.$array[$num]['libelle'].' : <br />';
    		echo '--->vous avez repondu : ';
    		if(isset($_POST['choice'][$num])) {
    			$reponse = $_POST['choice'][$num];
    			echo $reponse;
    			if ($array[$num]['choix'][$reponse] == TRUE) {
    				echo'bonne réponse';
    			}
    			else {
    				echo'mauvaise réponse';
    			}
    		}
    	}
    }
    ?>
    suite à cette erreur j'ai ajouté un nouvelle boucle( foreach) pour prendre en considération le true/false ($choix) , je n'ai certe plus de message d'erreur , mais ma condition ne se fait pas correctement ,puisque qu'elle me répond par la négative , alors que la réponse est juste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    /****************************************************/
    $qcm = array('1'=>array(
    	'libelle'=>'je vois grace à ','img'=>null,
    	'choix'=>array(
    		'mes yeux.'=>true,
    		'ma tete.'=>false,
    		'mon nez.'=>false)),
    '2'=>array(
    	'libelle'=>'je sens grace à . ','img'=>Null,
    	'choix'=>array(
    		'mon bras.'=>false,
    		'mon nez.'=>true,
    		'mon coude.'=>false)),
    '3'=>array(
    	'libelle'=>'high kick dans la gueule grace à','img'=>Null,
    	'choix'=>array(
    		'mon pied.'=>true,
    		'mon genoux.'=>false,
    		'mon orteil.'=>false)));
    /**************************************************/
    echo "<form action='test.php' method='post'>";
    // $num= '1','2','3'.
    //$question='libelle','img','choix'.
    foreach($qcm as $num=>$question){
        echo '<h3>'.'QUESTION '.$num.'</h3>'.$qcm[$num]['img'].'<br />'.' -'.$qcm[$num]['libelle'].' :<br />';
    //$reponse='mes yeux','ma tete','mon nez' (pour la question 1)
    //$choix='true','false','false'
    	foreach($question['choix'] as $reponse=>$choix){
    		echo '<input type="checkbox" name="reponse_box['.$num.'][]"  value="'.$reponse.'">'.$reponse.'<br />';
    	}
    	echo '<p />';
    }
    echo'<input type="RESET" value="Effacer" />';
    echo'<input type="SUBMIT" name="btn_valid" value="Valider" />';
    echo'</form>';
    /*************************************************************/
    if(isset($_POST['reponse_box'])){
    	print_r ($_POST['reponse_box']);
    	foreach ($qcm as $num => $question){
    		echo'<p />QUESTION '.$num.' - '.$qcm[$num]['libelle'].' : <br />';
    		echo '--->vous avez repondu : ';
    		foreach($question['choix'] as $reponse=>$choix){
    			if(isset($_POST['reponse_box'][$num])) {
    				echo $reponse;
    				if ($qcm[$num]['choix'][$reponse][$choix] == true) {//if ($qcm[$num]['choix'][$reponse] == TRUE) {
    					echo'<br />bonne réponse';
    				}
    				else {
    					echo'<br />mauvaise réponse';
    				}
    			}break;
    		}	
    	}
    }
    ?>
    Merci pour votre aide

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Notice: Undefined variable: array
    Normal : tu as renomme $array en $qcm
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inserer un bouton suivant une condition
    Par ramijrad dans le forum ASP
    Réponses: 2
    Dernier message: 08/04/2011, 13h16
  2. inserer une ligne avec condition
    Par pepesese dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2008, 20h22
  3. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 11h55
  4. [VBA-W] [Word] Insérer une image MSChart
    Par fredo1664 dans le forum VBA Word
    Réponses: 2
    Dernier message: 20/11/2002, 10h09
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo