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 :

Sauter d'une condition à l'autre dans un switch


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut Sauter d'une condition à l'autre dans un switch
    B'jour!

    Je suis en train de développer un site web et il se trouve que j'ai un switch de cette forme:

    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
     
    switch($_GET['page']){
     
    	case 'ajoutClient':
                    //ajout du client
                    break;
     
           case 'modifierClient':
                   //modification du client
                    break;
     
             case 'afficherClient':
                   //afficher les infos du client
                    break;
    }
    Mon affichage (par templates) se passe sans problèmes. J'ai donc juste une question syntaxique.
    Je souhaite qu'après avoir modifié un client, je puisse l'afficher.
    Ainsi, je fais appel au cas "modifierClient" puis, à la fin de ce cas, je voudrais faire appel à afficherClient.

    Je ne vois pas du tout comment faire. Le "goto" n'existant pas en PHP . Autre contrainte, je veux laisser le nom de mes cas en "chaine de caractère". Je ne veux pas avoir "case 1", "case 2", etc... Je sais que ça résoudrait le problème d'avoir des entiers mais non


    Voilà, merci de m'éclairer

    David

    PS: Oui, je sais que ça fonctionne en enlevant le "break" à la fin de modifierClient mais ça n'est pas vraiment ce que l'on peut appeler de la programmation propre

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour, il te suffit de mettre tes instructions avant le break;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    switch($_GET['page']){
     
        case 'ajoutClient':
              //ajout du client
              include("ma_page.php");
              break;
     
    }
    Tu peux mettre n'importe quelle instruction entre le case et le break

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Hello

    Merci de ta réponse

    En fait, le problème n'est pas exactement là puisque mes case sont remplis d'instructions (que je n'ai pas mis ici pour ne pas alourdir le code).

    Ce que je souhaite faire, mais que je ne parviens pas à mettre en place est quelque chose du genre:

    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
    switch($_GET['page']){
     
    	case 'ajoutClient':
                    //ajout du client
                    break;
     
           case 'modifierClient':
                   //modification du client
          Instruction Passer au cas afficherClient
                    break;
     
             case 'afficherClient':
                   //afficher les infos du client
                    break;
    }
    Voilà, j'espère que mon problème est plus clair.

    Merci d'avoir pris du temps pour me répondre.

    David

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    si j'ai bien compris, à la fin de l'instruction, tu veux passer au case suivant ?

    Mais pourquoi ne mets-tu pas les instructions du case "afficher" dans une fonction que tu appelleras ensuite depuis n'importe quel case ??

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    En effet, recopier simplement les instructions de consulterClient à la suite des instructions de modifierClient est une très bonne idée!

    Pour le moment je n'y arrive pas, j'ai un message d'erreur bien embêtant. Je pense que cela est du au fait que pour pouvoir Modifier un client, il faut l'avoir Affiché avant. Et donc si on redemande un nouvel affichage... ben il n'a pas l'air d'apprécier.

    Bref, si je galère toujours, je posterai mon code ici. Et ça ça fonctionne, je posterai mes remerciements ici

    A plus tard

    David

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Bon ben finalement je n'ai pas réussi à afficher "afficherClient" mais j'ai réussi à afficher "listerClients" qui est un autre cas. Je n'arrive pas à comprendre l'erreur pour le moment mais la meilleure solution à mon problème initial est probablement un simple copier coller des instructions.
    J'avoue qu'un "goto" ou un truc du genre aurait été bien pratique et aurait évité d'avoir un code trop lourd mais bon.... ça marche

    Donc merci beaucoup pour le dépannage rapide!

    Bonne soirée!

    David

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2015, 10h13
  2. Réponses: 1
    Dernier message: 30/04/2013, 21h33
  3. Réponses: 0
    Dernier message: 28/02/2011, 13h48
  4. [XL-2003] copier les données d'un tableau d'un onglet dans un autre onglet suivant une condition
    Par chouki60 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2011, 07h48
  5. mettre un champ dans un autre avec une condition
    Par belgariel dans le forum Requêtes
    Réponses: 2
    Dernier message: 31/05/2010, 12h51

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