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.
A voir également:

4 réponses

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
M@dien Messages postés 437 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
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
JoUle
 
Je comprends oki, donc faut fermer le echo dès que j'ai une instruction.

Merci beaucoup!
0