Structure conditionelle dans un input [Résolu/Fermé]

Signaler
-
 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

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76560 internautes nous ont dit merci ce mois-ci

Messages postés
437
Date d'inscription
mercredi 29 juillet 2009
Statut
Membre
Dernière intervention
23 septembre 2010
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.
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 ;
Je comprends oki, donc faut fermer le echo dès que j'ai une instruction.

Merci beaucoup!