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 :

[PHP-JS] switch - case : non comparaison de la valeur testée


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut [PHP-JS] switch - case : non comparaison de la valeur testée
    Bonjour,

    j'ai un petit soucis dans le déroulement d'un switch-case. J'ai en effet une partie administration, qui permet d'ajouter dans une DB des produits, de les supprimer ou de remettre à jour la BD. Or, avant d'ajouter un produit dont l'utilisateur aura au préalable remplit un formulaire permettant de connaitre la reference, le nom et la gamme du produit, je voudrais aficher ce que l'utilisateur a saisie et alors lui demander s'il vlide les données (pour procéder a l'ajout ou la suppression) ou s'il veut modifier ces mêmes données.

    Mon problème c'est que lors de la première saisie des infos concernant le produit à ajouter (ou supprimer), l'affichage pour la confirmation ne se fait pas... j'ai l'impression que dans mon switch-case, seul le cas "default" est pris en compte, et que la valeur que prend mon action n'est pas testée... Quelle est mon/mes erreur(s) ?!

    code d'ffichage des pages :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php
        echo'<?xml version="1.0" encoding="ISO-8859-1" ?>
             <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
     
        require 'pageAdmin.inc';
     
        /*Récupération de la page en cours.*/
       if(!isset($_GET['page'])) $page="adminAccueil";
    ?>
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>JENFLO - Administration</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <meta name="Author" content="Arnaud Loy"/>
            <link rel="stylesheet" href="../styleAdmin.css" type="text/css"/>
            <style type="text/css">
            </style>
        </head>
     
        <body>
            <div class="conteneur">
     
                <!-- Mise en place de la bannière. Affichage de cette dernière suivant la page choisie -->
                <div class="header">
                    ADMINISTRATION DU SITE JEN FLO
                </div>
     
                <div class="contenu">
     
                    <!-- Mise en place et affichage du menu -->
                    <div class="menu">
                        <ul>
                            <li><a href="administration.php?page=93"> AJOUTER</a></li><br/>
                            <li><a href="administration.php?page=94"> SUPPRIMER</a></li><br/>
                            <li><a href="administration.php?page=95"> REINITIALISER</a></li><br/>
                        </ul>
                    </div>
     
                    <!-- Affichage de la page suivant celle qui a été choisie -->
                    <?php
                        if(!empty($_GET['page'])){
                        switch($_GET['page'])
                            {
                            case 93 :
                                $page = 'adminAjout';
                                break ;
                            case 94 :
                                $page = 'adminSupp';
                                break ;
                            case 95 :
                                $page = 'adminReinit';
                                break ;
                            }
                        }
                        else{
                            $page = 'adminAccueil';
                        }
                        affichePageAdmin($page);
                    ?>
     
                </div>
     
                <div class="footer">
                    <a class="administration" href="../../../index.php"> >> Retour au site << </a>
                </div>
     
            </div>
        </body>
    </html>
    code de l'ajout (par exemple):
    <?php
    switch($_POST["action"])
    {
    /* VERIFICATIONS DE LA SAISIE */
    case "preAjout":
    echo'<p>Vous avez choisie d\'ajouter l\'article '.$_POST["designation_article"].' dont la référence est '.$_POST["ref_article"].' dans la gamme de produits '.$_POST["gamme_article"].'</p>';?>
    <p>Si les informations sont correctes, vous pouvez ajouter, sinon appuyez sur modifier pour corriger la ou les erreurs.</p>
    <table border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td> <input type="submit" name="submit" value="Ajouter"> </td>
    </tr>
    </table>
    <input type="hidden" name="action" value="insertion">';

    <table border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td> <input type="submit" name="submit" value="Modifier"> </td>
    </tr>
    </table>
    <input type="hidden" name="action" value="modifier">
    <?php break;

    /* MODIFICATION */
    case "modifier":
    echo '<form method="post" action="'.$_SERVER["PHP_SELF"].'">'; ?>
    <p>Veuillez saisir à nouveau les informations nécessaires. N'oubliez pas que tout doit être saisi en MAJUSCULES.</p>
    <table border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td>Référence :</td>
    <td> <input type="text" name="ref_article"> </td>
    </tr>
    <tr>
    <td>Désignation :</td>
    <td> <input type="text" name="designation_article"> </td>
    </tr>
    <tr>
    <td>Gamme :</td>
    <td> <input type="text" name="gamme_article"> </td>
    </tr>
    <tr>
    <td></td>
    <td> <input type="submit" name="submit" value="Valider"> </td>
    </tr>
    </table>
    <input type="hidden" name="action" value="preAjout">
    </form>
    <?php
    break;

    /* CAS DE LA VALIDATION DE L'AJOUT */
    case "insertion":
    require 'bd.inc';

    $link = connectBD("./");
    switch($link)
    {
    case 1 :
    echo'<p>/!\ Problème de connexion au serveur mysql.</p>';
    break;

    case 2 :
    echo'<p>/!\ Problème de connexion à la base de données.</p>';
    break;

    default :
    if(!testTable())
    echo"<p>/!\ Erreur : la table dans laquelle l'article doit-être ajoutée n'existe pas n'existe pas.</p>";
    else
    {
    $query = 'INSERT INTO articles VALUES ("'.$_POST["ref_article"].'", "'.$_POST["designation_article"].'", "'.$_POST["gamme_article"].'")';
    MYSQL_QUERY($query);
    if(mysql_error())
    {
    /* Erreur dans la base de donnees */
    print "Erreur dans la base de données : ".mysql_error();
    print "<br/>L'importation n'a pas pu se faire correctement.";
    exit();
    }
    else
    echo"<p>Ajout dans la base de données terminé avec succès !</p>";
    }
    break;
    }
    break;


    /*CAS PAR DEFAUT, SAISIE DES DONNEES DU PRODUIT A AJOUTER*/
    default:
    echo '<form method="post" action="'.$_SERVER["PHP_SELF"].'">'; ?>
    <p>Pour ajouter un nouvel article dans la base de données, veuillez compléter les informations suivantes. Attention, toutes les données devront être en MAJUSCULES :</p>
    <table border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td>Référence :</td>
    <td> <input type="text" name="ref_article"> </td>
    </tr>
    <tr>
    <td>Désignation :</td>
    <td> <input type="text" name="designation_article"> </td>
    </tr>
    <tr>
    <td>Gamme :</td>
    <td> <input type="text" name="gamme_article"> </td>
    </tr>
    <tr>
    <td></td>
    <td> <input type="submit" name="submit" value="Valider"> </td>
    </tr>
    </table>
    <input type="hidden" name="action" value="preAjout">
    </form>
    <?php
    break;
    }
    ?>

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Avant ton switch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    switch($_POST["action"])
    si tu rajoutes la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>', $_POST, '</pre>');
    Qu'est-ce que ça dit ?

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Ca me répond ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string(5) ""
    array(0) {
    }
    string(6) ""

    faut savoir aussi donc qu'une fois le cas "default" effectué, je reviens directement à la page d'accueil de l'administration. J'avais pensé mettre un while(action != "") avant mon switch en donnant une chaine vide à ma variable "action" quand j'ai terminé l'ajout, mais bon j'suis pas sur que ce soit la bonne méthode >.<

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ca te répond ça après que tu aies posté ton formulaire ?

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Non, avant l'affichage du formulaire. De toute facon quand je saisie des données dans mon formulaire et que je valide, je n'ai aps le temps de voir car je suis directement redirigé sur ma page accueil de la partie administration :/

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Essaie de trouver pourquoi. Utilise des echo, des var_dump et des die....

Discussions similaires

  1. switch case non vérifié
    Par flo73 dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2010, 18h45
  2. Switch case et variable URL comme en PHP
    Par chouchouilloux dans le forum ASP
    Réponses: 1
    Dernier message: 24/07/2009, 11h22
  3. [Netbeans for PHP] Formatage du PHP avec switch case
    Par bigben89 dans le forum NetBeans
    Réponses: 1
    Dernier message: 10/12/2008, 09h22
  4. Switch/case et comparaison de type gt/lt
    Par sroux dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2006, 09h48
  5. case non constant
    Par jul54 dans le forum MFC
    Réponses: 4
    Dernier message: 04/02/2004, 14h08

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