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 :

Comparer deux srtings


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut Comparer deux srtings
    Bonjour tout le monde!

    Voilà mon problème, je récupère à l'aide d'un GET, la valeur d'un menu déroulant que j'affiche sur un nouvelle page (page de remerciement). Mais je voudrais pouvoir tester cette valeur pour afficher quelque chose de différent pour chacune des options de mon menu.

    J'ai testé comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if (isset($_GET['produit']))
    {
     
    	if ($_GET ['produit'] == "ValeurString")
    	{
    		echo "Ca marche";
    	}
     
    	else 
    	{
    		echo "Ne marche pas";
    	}
    Si quelqu'un à une idée!?
    Merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    ton idée ne marche pas? sinon il y'a switch pour éviter une multitude de if.

    pour changer le menu selon ta valeur, soit tu affiches un bloc html selon le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if ($produit == "ValeurString")
    {
      ?><div ="menu1">...</div> <?
    }
    else 
    {
      ?><div ="menu2">...</div> <?
    }
    soit tu defini tes options d'abord, puis tu les affiches dans l'html
    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
    <?php
    $options_menu=array();
    if ($produit == "ValeurString")
    {
      $options_menu[0]= array('label'=>"blabla", url="/action/module?id=15")
      $options_menu[1]= array('label'=>"blabla2", url="/action/module2")
      $options_menu[2]= array('label'=>"blabla3", url="/action/module3")
    }
    else 
    {
      $options_menu[0]= array('label'=>"blabla4", url="/action/module?id=18")
      $options_menu[1]= array('label'=>"blabla5", url="/action/module5")
      $options_menu[2]= array('label'=>"blabla6", url="/action/module7")
    }
    ?>
    <!-- html du menu -->
    <div id="menu">
      <?
      foreach($options_menu as $entree_menu){
         echo '<a href="'.$entree_menu['url'].'" >'.$entree_menu['label'].'</a>';
      }?>
    </div>
    c'est juste des idées, a toi de trouver la solution qui convienne le plus a ton besoin

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonjour,

    quel est ton problème ? S'il y'en a un.

    Si tu veut savoir qu'elle est la bonne pratique pour se genre de teste tu a plusieur façon de faire :
    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
    //A base de if esleif else
    if(condi1){
       //Traitement 1
    }elseif(condi2){
       //Traitement 2
    }elseif(condif3){
       //Traitement 3
    }else{
       //Traitement 4
    }
     
    //A base de switch
    switch($variable){
        case 'chaine1':
            //traitement1
        break;
        case 'chaine2':
            //traitement2
        break;
        default:
            //traitement par défault
        break;
    }
    //N'oublie pas les break
    Les deux méthodes sont équivalente le seul changement sera sur la lisibilité du code.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut
    Merci de ta réponse Gototog.

    En fait ce qui ne marche pas c'est le test.
    J'ai aussi essayé de comparer mes 2 valeurs avec la fonction strcmp.

    En gros:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    $x = $_GET['produit'];
    $a = "monproduit";
     
    echo strcmp($x, $a);
    ca me retourne -1
    alors que si j'affiche de manière classique:


    echo $x;
    echo $a;
    ca me retourne exactement la meme chose!

    Je ne comprends pas pourquoi le test strcmp me retourne faux!?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    attention, strcmp est sensible à la casse. Vérifie aussi que tu n'as pas des espaces qui trainent dans une des deux chaines.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut
    Hahaha oui c'est bien ça! Le petit espace qui traînait par là!

    Merci bien pour votre aide!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  2. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 21h08
  3. [STRUTS] Tag Equal, comparer deux variables
    Par logica dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2004, 12h01
  4. comparer deux string
    Par jul54 dans le forum MFC
    Réponses: 3
    Dernier message: 22/04/2004, 15h50
  5. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 15h21

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