Structure conditionelle dans un input

Résolu
JoUle -  
 le père -
Bonjour,

Je voudrais mettre une condition pour la valeur de mon input seulement je n'y parviens absolument pas et mon ami google ne m'as pas apporter de précisions satisfaisante je me tourne vers vous en esperant que vous pourrez m'aider:

Parse error: syntax error, unexpected T_IF
echo '<input type="text" size="15" name="prenom" value="'.if(isset($_POST['rechercher'])){echo $_POST['prenom'];}.'" />';

J'ai essayé sans mettre de echo et ça n'a pas mieux fonctionné.

Merci.

4 réponses

  1. le père
     
    Ce que tu appelles 'fermer le echo' est simplement séparer une instruction de la suivante. Car le echo est une instruction et toutes les instructions (echo ou non) doivent être séparées de la suivante par un ; en php.
    1
  2. M@dien Messages postés 439 Date d'inscription   Statut Membre Dernière intervention   74
     
    Bonjour, plusieurs possibilités pour ça:
    ?>
    <input type="text" size="15" name="prenom" value="<?php if(isset($_POST['rechercher'])){echo $_POST['prenom'];} ?>" />
    <?php 

    ou bien
    echo '<input type="text" size="15" name="prenom" value="'. isset($_POST['rechercher'])?$_POST['prenom']:'' .'" />'; 


    Le 2ème cas on utilises l'opérateur ternaire qui permet de faire des tests rapidement. mais c'est difficile de relire et comprendre un tel code.
    0
  3. le père
     
    Bonjour

    par exemple :

    echo '<input type="text" size="15" name="prenom" value="';
    if(isset($_POST['rechercher'])){echo $_POST['prenom'];}
    echo '" />';

    le . sert à concaténer de chaînes, mais toi tu l'utilises pour concaténer des instructions (echo, if...) ce qui ne veut rien dire. Les instructions ne se concatènent pas, elles s'écrivent simplement les unes à la suite des autres séparées par des ;
    0
  4. JoUle
     
    Je comprends oki, donc faut fermer le echo dès que j'ai une instruction.

    Merci beaucoup!
    0