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 :

mettre une condition au sein d'un echo


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut mettre une condition au sein d'un echo
    re-bonjour

    toujours en train de me débattre avec les "forms" je me demande si'l y a une astuce pour faire entrer au sein d'un tag ECHO une condition?

    voila mon code qui se trouve dans un echo ''; :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo '<tr>
    <form action="annuaires.php" method="get">
       <select name="champ">
           <option <?php if ($champ==graphique) echo('selected')?>>graphique</option>
    etc...
    ';
    mais bien sûr le code ne fonctionne pas à cause de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php if ($champ==graphique) echo('selected')?>
    ça me permettrait après le choix d'un utilisateur dans ma liste déroulante, au réaffichage de ma page, de laisser positionné le select au bon endroit...

    merci pour vos conseils

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    1) graphique n'est pas une constante, mais une chaine de caractères. Tu dois donc l'entourer de quotes.
    2) pourquoi ouvres-tu une balise php alors que tu es déjà en php ?

    Conclusion : lis d'abord les tutoriels !

  3. #3
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    c'est normal.

    il y a une erreur.

    Graphique tu doit mettre des " ou des '.
    manganimes (en construction) -
    zemanga

  4. #4
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    oui désolé pour la variable non quotée

    par contre lorsque j'écris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '<tr>
    <form action="annuaires.php" method="get">
    <select name="champ">
    <option <?php if ($champ=='graphique')) {echo 'selected';}?> >graphique</option>
    etc...
    ';
    ça ne marche pas mieux... il ne m'interprète pas la condition

    et sur la question "pourquoi ouvres-tu une balise php alors que tu es déjà en php ? " eh bien c'est que je ne sais pas faire ... d'où mon post sur le fait de demander comment on peut faire pour imbriquer une condition dans un echo...

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Bon, j'essaie de t'aider, mais lis les tutoriels la prochaine fois
    Je te donne un exemple différent, mais que tu pourras appliquer à ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo '<option value="graphique" ';
    if ($selectionne=='graphique')
      {echo 'selected="selected"';}
    echo '>graphique</option>';
    Tu comprends ?

  6. #6
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    oui ton explication est claire
    par contre le code devient complexe...

    je pensais qu'il y avait peut être une autre solution moins coûteuse en ouverture/fermeture d'ECHO...

    en tout les cas merci pour votre aide

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Tu peux toujours faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($selectionne=='graphique')
      {echo '<option value="graphique" selected="selected">graphique</option>';}
      else
        {echo '<option value="graphique">graphique</option>';}
    Mais je ne te le conseille pas, car tu code 2 fois la même chose. C'est de la perte de temps, et en plus c'est un risque d'oublier de modifier les 2 lignes si tu changes ensuite 'graphique' par 'image', par exemple.
    Tu peux aussi concaténer une variable, et faire ensuite un echo final de la variable.
    Mais je ne suis pas persuadé que tu gagnes beaucoup de temps.

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    J'ai fait le test sur 1 000 000 d'itérations. Soit j'affiche 1000000 'a' avec des echo, soit en concaténant une variable et en l'affichant à la fin. Résultats :
    1) 1 000 000 echo = 4,32676 secondes
    2) 1 000 000 concaténations + 1 echo = 2,92268 sec.
    Certes, il y a une différence (-32%), mais les durées en jeu sont tellement faibles (2/10 000e de secondes pour une concaténation) que je ne vois pas l'intérêt de la concaténation dans un cas normal.
    Bien sûr, ces tests sont faits sur mon ordi en local.

  9. #9
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    comme quoi on a souvent des réflexes dans la tete qui ne reposent pas obliatoirement sur des choses concrètes

    merci pour tes tests

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

Discussions similaires

  1. [C# 2.0]Mettre une condition dans un repeater
    Par giloutho dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/11/2006, 19h13
  2. Réponses: 1
    Dernier message: 08/09/2006, 10h31
  3. mettre une condition dans l'ajout de données
    Par ash_rmy dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2006, 13h29
  4. Mettre une condition if dans une requete sql
    Par Sardonnen dans le forum Oracle
    Réponses: 4
    Dernier message: 24/03/2006, 11h25
  5. Insertion d'une Condition au sein d'une requete
    Par Redouane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/02/2006, 10h58

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