Code php dans un echo

Fermé
brasiil59 Messages postés 9 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 16 mai 2012 - 16 mai 2012 à 08:25
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 16 mai 2012 à 11:04
Bonjour, je suis un débutant en PHP. Mon problème est le suivant, je voudrais mettre du code php dans un echo. Mon code :


<?php

if($data['temperature'] < 10) {
echo ' <div id="B1" style = "background : " > </div>';


} elseif($data['temperature'] > 20) {

echo '<div id="B1" style = "background : #99FFFF" > </div>';

} elseif($data['temperature'] > 50) {
echo ' <div id="B1" style = "background : " > </div>';
}

?>


je voudrais afficher les données de température dans la div mais je ne sais pas comment m'y prendre.

Merci d'avance.





A voir également:

2 réponses

the_animal Messages postés 69 Date d'inscription vendredi 27 avril 2012 Statut Membre Dernière intervention 27 juillet 2013 18
16 mai 2012 à 08:46
echo '<div id="B1"  >'.$data['temperature'].'</div>'; 


le . est la concaténation en php ;)
1
aiglenoirdu29 Messages postés 10205 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 5 mai 2020 2 346
16 mai 2012 à 08:50
Bonjour,

+1 avec the_animal.

Je te conseille de lire excellent tuto sur le site du zero (il est même disponible en livre) : https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
16 mai 2012 à 11:04
Bonjour,

Code revu et corrigé:

<?php
$style=null;
if($data['temperature'] > 20) {
$style= "style = 'background : #99FFFF;'";
} elseif($data['temperature'] > 50) {
$style= null;
}
?>

et plus loin... dans le code HTML:

<div id="B1" <?php echo $style; ?>><?php echo $data['temperature']; ?></div>

Il faut éviter:
- que le HTML -> passe la main à PHP -> lequel PHP contienne du HTML

Il est souhaitable:
- passer de HTML à PHP
- revenir à HTML et y insérer du code PHP

PHP à l'origine (dixit son créateur: Rasmus Lerdorf) est un langage de "template":
https://fr.wikipedia.org/wiki/Php

dans mon code corrigé, ici:

<div id="B1" <?php echo $style; ?>><?php echo $data['temperature']; ?></div>

C'est sans doute plus verbeux que ceci:

echo '<div id="B1" style = "background : #99FFFF" > </div>';

mais si vous utilisez un IDE comme Netbeans ou Eclipse, vous verrez que ces IDEs gèrent nettement mieux la structuration HTML avec la première solution. Netbeans intègre un analyseur DOM et signale les erreurs de structuration de code HTML. En faisant ceci:

echo '<div id="B1" style = "background : #99FFFF" > </div>';

vous cassez la structuration DOM du code HTML.

Un exemple d'horreur que je vois parfois:

<tr>
<?php
if ($condition) {
?>
<td>valeur</td>
<?php
}
?>
</tr>

Là on passe de HTML qui contient du PHP qui imbrique du HTML!!!!

La bonne manière:

<tr>
<?php if ($condition): ?>
<td>valeur</td>
<?php endif; ?>
</tr>

Ici on est en HTML, on passe la main à PHP puis on revient en HTML....

Avec Netbeans ou Eclipse, dans le second cas, l'analyseur DOM verra bien le TD../TD, pas dans le premier cas.

JE sens d'ici les critiques.... On s'en fout d'écrire comme ça. la première manière fonctionne très bien.... OK; C'est un choix. Mais ceci:

echo ' <div id="B1" style = "background : " > </div>';

une déclaration de style sans la couleur, c'est une erreur pour le navigateur web.


A peluche


-1