Structure conditionelle dans un input

Résolu/Fermé
JoUle - 25 août 2009 à 10:06
 le père - 25 août 2009 à 11:04
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

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 mercredi 29 juillet 2009 Statut Membre Dernière intervention 23 septembre 2010 74
25 août 2009 à 10:44
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
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
Je comprends oki, donc faut fermer le echo dès que j'ai une instruction.

Merci beaucoup!
0