Code php dans un echo

brasiil59 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   18
 
echo '<div id="B1"  >'.$data['temperature'].'</div>'; 


le . est la concaténation en php ;)
1
aiglenoirdu29 Messages postés 10205 Date d'inscription   Statut Contributeur Dernière intervention   2 349
 
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   Statut Membre Dernière intervention   1 340
 
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