Préremplissage d'un champs input type="text" avec un "if"

Petit nouveau ! | 1 Messages

12 août 2011, 16:55

Bonjour à tous,

j'ai sur mon site un formulaire dans lequel je pré-rempli un champs input de type text, avec une variable que j'appelle dans l'attribut value="" de cet input :
<tr>
<td align="right"><span class="">Identifiant du véhicule<span style="color:red;">*</span> :</span></td>
<td><input name="ref" type="text" class="inputdisabled" size="50" disabled="disabled" value="<?=$row['ref']?>"/></td>
</tr>
$row['ref'] me renvoie un identifiant de véhicule, jusque là tout va bien. Seulement certains véhicule de mon site n'ont pas d'identifiant.

J'aimerais donc dire : Si $row['ref'] renvoie une valeur, alors afficher cette valeur, sinon afficher "pas d'identifiant".

Merci par avance pour votre coup de pouce !

Romain.

Eléphant du PHP | 73 Messages

12 août 2011, 17:27

là tu aurais pu regarder la doc des conditions PHP quand même.. c'est pas bien compliqué
if (empty($row['ref'])) {
   echo '<td><input name="ref" type="text" class="inputdisabled" size="50" disabled="disabled" value="pas d\'identifiant"/></td>';
} else {
   echo '<td><input name="ref" type="text" class="inputdisabled" size="50" disabled="disabled" value="'.$row['ref'].'"/></td>';
}

ViPHP
AB
ViPHP | 5818 Messages

12 août 2011, 19:21


Mammouth du PHP | 2278 Messages

13 août 2011, 18:13

plus de détails sur une variante :
http://www.php.net/manual/fr/language.o ... on.ternary
sur laquelle il a coulé beaucoup d'encre pour savoir si elle est plus rapide que le if else,
et une autre vision des choses :
$valeur = (empty($row['ref'])) ? "pas d'identifiant" : $row['ref'] ;
print"
<tr>
<td align='right'><span class=''>Identifiant du véhicule<span style='color:red;'>*</span> :</span></td>
<td><input name='ref' type='text' class='inputdisabled' size='50' disabled='disabled' value='$valeur'></td>
</tr>";
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 août 2011, 02:14

c'est bien mais le retour du SGBd c'est un string ? donc est ce que 'null' est considéré comme null ?

et puis d'ailleurs est ce que la requête retourne null ou un chaine vide ?

il faudrait que e-Rom nous indique le retour dans ce cas ;)

@e-Rom : il serait préférable de ne pas utiliser <?= car ceci ne reflète pas la configuration par défaut de PHP, les short tags n'étant configuré a on par défaut (donc utiliser <?php echo plutot que <?= )


@+
Il en faut peu pour être heureux ......

ViPHP
AB
ViPHP | 5818 Messages

17 août 2011, 04:15

@e-Rom : il serait préférable de ne pas utiliser <?= car ceci ne reflète pas la configuration par défaut de PHP, les short tags n'étant configuré a on par défaut (donc utiliser <?php echo plutot que <?= )
@+
+1 très préférable en effet :)

ViPHP
AB
ViPHP | 5818 Messages

17 août 2011, 04:26

plus de détails sur une variante :
http://www.php.net/manual/fr/language.o ... on.ternary
sur laquelle il a coulé beaucoup d'encre pour savoir si elle est plus rapide que le if else,
Oui en effet, souvent pas plus rapide, parfois plus lent, mais il s'agit de différences infimes donc à moins que ce soit pour une boucle de plusieurs dizaines de milliers d'itérations, l'emploi des opérateurs ternaires n'est pas à considérer sous l'aspect de performances mais plutôt comme une méthode pratique pour faire un code épuré avec des conditions simples :)