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 :

If dans un echo


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut If dans un echo
    Bonjour,

    Je viens de créer un formulaire et je souhaite que les champs soient autocomplétés en cas d'erreur ainsi j'ai créer le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    else
    {
    echo "
    <fieldset><legend>Formulaire de contact</legend>
    <br />
    <form name=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">
    <table>
    <tr>
    <td><label>Nom ou Raison Sociale</label></td>
    <td> : <input type=\"text\" name=\"nom\" style=\"border:1px #C9C9C9 solid; width:150px;\" value=\"".if($_POST["nom"] != \"\"){ print($_POST["nom"]);}."\" /> *</td>						 </tr>
    ...
    Le if figurant dans le champ "nom" créer une erreur, comment faire ?

    Merci d'avance pour votre aide :-)

  2. #2
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    Bonjour,

    il faut découper ton instruction en plusieurs
    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
     
    ...
    else
    {
    echo "
    <fieldset><legend>Formulaire de contact</legend>
    <br />
    <form name=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">
    <table>
    <tr>
    <td><label>Nom ou Raison Sociale</label></td>
    <td> : ";
    echo "<input type=\"text\" name=\"nom\" style=\"border:1px #C9C9C9 solid; width:150px;\" value=\"";
    if($_POST["nom"] != "") {
      print($_POST["nom"]);
    }
    echo "\" /> *</td>
    </tr>
    ...
    je te conseillerais ensuite de découper mieux que ca tes instructions (question de lisibilité).
    Et d'utiliser des fonctions comme 'empty()' pour tes tests

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 306
    Par défaut
    Citation Envoyé par sebhm Voir le message
    Bonjour,
    je te conseillerais ensuite de découper mieux que ca tes instructions (question de lisibilité).

    Et d'utiliser des fonctions comme 'empty()' pour tes tests
    Bonjour,

    Ok, je pensais qu'il était possible de faire des concatenations pour les tests.

    En ce qui concerne empty() , fut il une époque ou j'utilisais isset() pour les tests mais suite à plusieurs renvois incorrect (la méthode m'indiquait un champ complété alors qu'il ne l'était pas) j'ai trouvé la solution non fiable et ai preferé utiliser ma méthode. Cela post t-il un problème ?

    Cordialement,

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Sinon tu peux t'arranger avec l'opérateur ternaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    condition ? true : false
    http://fr.php.net/manual/fr/language...comparison.php

    C'est assez pratique mais a tendance à rendre le code moins lisible. A utiliser avec parcimonie.

  5. #5
    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
    (la méthode m'indiquait un champ complété alors qu'il ne l'était pas) j'ai trouvé la solution non fiable
    empty() et isset() sont fiables dans le sens ou ils font exactement ce qu'ils sont censé faire.
    Apres c'est plutot le comportement du HTML qu'il faut bien comprendre : par exemple un champ texte non rempli est TRUE sur isset() et TRUE sur empty().

    Après y a t'il dans ton cas un interet a utiliser empty ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. soumettre par un lien genéré dans un echo
    Par ozzmax dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 08/09/2006, 21h21
  2. echo dans un echo
    Par clovis200 dans le forum Langage
    Réponses: 13
    Dernier message: 10/06/2006, 16h35
  3. Signification \t dans fonction echo ou print
    Par webrider dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2006, 14h44
  4. [Tableaux] Code PHP dans un echo
    Par flOZ dans le forum Langage
    Réponses: 7
    Dernier message: 24/05/2006, 10h40
  5. probleme avec " dans un echo
    Par Death83 dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2005, 12h11

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