Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Affichage ou non d'une ligne d'un tableau html contenant du php

9 réponses
Avatar
elia
Bonjour,
Lors d'une condition php (quantité choisie ou non) je dois afficher ou
non ou ligne d'un tableau html contenant des variable php, un problème
de concaténation?

Mon code est le suivant:

<? if ($quantite1 > 0) {
echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center"> <? $quantite1 ?> </td>
<td align="center">20 &euro;</td>
<td align="center"> <? echo $montant1 ?> &euro;</td>
</tr>');
}
else{
echo("");
}
?>

Si l'aticle 1 n'est pas commandé il ne s'affiche pas dans le tableau
mais si une quantité est choisie, cette quantité et le montant
devrait apparaitre mais les variable php $quantite1 et $montant1 ne
s'affiche pas. Merci

9 réponses

Avatar
venerzen
elia avait écrit le 09/10/2006 :
Bonjour,
Lors d'une condition php (quantité choisie ou non) je dois afficher ou
non ou ligne d'un tableau html contenant des variable php, un problème
de concaténation?

Mon code est le suivant:

<? if ($quantite1 > 0) {
echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center"> <? $quantite1 ?> </td>
<td align="center">20 &euro;</td>
<td align="center"> <? echo $montant1 ?> &euro;</td>
</tr>');
}
else{
echo("");
}
?>

Si l'aticle 1 n'est pas commandé il ne s'affiche pas dans le tableau
mais si une quantité est choisie, cette quantité et le montant
devrait apparaitre mais les variable php $quantite1 et $montant1 ne
s'affiche pas. Merci


oui, c'est bien ça.

echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">'.$quantite1.'</td>
<td align="center">20 &euro;</td>
<td align="center">'.$montant1.'&euro;</td>
</tr>');

<? echo $montant1; ?> ou <?= $montant1;?> s'utilise directement dans du
code html. Là tu mélangeais tout.

Ensuite, pense à regarder comment fonctionne les moteurs de templates.
http://cyberzoide.developpez.com/php4/template/.
Personnellement, j'ai toujours utilisé xrtemplate.

Avatar
Christophe Meresse

echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center"> <? $quantite1 ?> </td>
<td align="center">20 &euro;</td>
<td align="center"> <? echo $montant1 ?> &euro;</td>
</tr>');

Si l'aticle 1 n'est pas commandé il ne s'affiche pas dans le tableau
mais si une quantité est choisie, cette quantité et le montant
devrait apparaitre mais les variable php $quantite1 et $montant1 ne
s'affiche pas. Merci


Oui, normal, si tu regarde le source généré de ta page html
(toujours regarder le source ! :) )
tu les verras certainement entre des balise <? ?> qui sont ignorée par
le browser.
Ici, tu ne dois pas les mettre puisque tu est déjà "dans du php"
(echo)

echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">$quantite1</td>
<td align="center">20 &euro;</td>
<td align="center">$montant1 &euro;</td>
</tr>');

devrait marcher (pas testé)

Christophe

Avatar
xav
elia declarait le 09/10/2006 12:02:
Bonjour,
Lors d'une condition php (quantité choisie ou non) je dois afficher ou
non ou ligne d'un tableau html contenant des variable php, un problème
de concaténation?

Mon code est le suivant:

<? if ($quantite1 > 0) {
echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center"> <? $quantite1 ?> </td>
<td align="center">20 &euro;</td>
<td align="center"> <? echo $montant1 ?> &euro;</td>
</tr>');
}
else{
echo("");
}
?>


Salut,

Ceci devrait mieux passer, (tu est deja dans un script php, pas la peine
de reutiliser des balises ouvrantes et fermantes en milieu de chaine,
utilises d'abord une concatenation et ensuite l'affichage.


<? if ($quantite1 > 0) {
$str = '<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">' . $quantite1 . '</td>
<td align="center">20 &euro;</td>
<td align="center">' . $montant1 . ' &euro;</td>
</tr>';
echo $str;


A++
xav

Avatar
Olivier Miakinen

Oui, normal, si tu regarde le source généré de ta page html
(toujours regarder le source ! :) )


Voilà un *excellent* conseil. À rappeler régulièrement.

tu les verras certainement entre des balise <? ?> qui sont ignorée par
le browser.
Ici, tu ne dois pas les mettre puisque tu est déjà "dans du php"
(echo)


Tout à fait.

echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">$quantite1</td>
<td align="center">20 &euro;</td>
<td align="center">$montant1 &euro;</td>
</tr>');

devrait marcher (pas testé)


Ça ne marchera pas car les variables ne sont pas interprétées dans
des chaînes avec guillemets simples. À la place, on peut utiliser la
concaténation de chaînes, ou plus simplement intervertir les guillemets
simples et doubles :

echo("
<tr>
<td align='left' nowrap='nowrap'>article1</td>
<td align='center'>$quantite1</td>
<td align='center'>20 &euro;</td>
<td align='center'>$montant1 &euro;</td>
</tr>");

Avatar
Christophe Meresse

echo('
<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">$quantite1</td>
<td align="center">20 &euro;</td>
<td align="center">$montant1 &euro;</td>
</tr>');

devrait marcher (pas testé)


Ça ne marchera pas car les variables ne sont pas interprétées dans
des chaînes avec guillemets simples. À la place, on peut utiliser la
concaténation de chaînes, ou plus simplement intervertir les guillemets
simples et doubles :


OK, merci pour la précision. Moi je travaille toujours avec des
guillemets doubles et des guillemets double protégés par antislash
(Ouep pas trés lisible c'est vrai, les mauvaises habitudes sont
difficiles à changer... et je garde les guillemets simples pour le
javascript généré)

A+
Christophe


Avatar
Tasgarth
<td align="left" nowrap="nowrap">article1</td>
Dans le cas de balises HTML dans du PHP, j'enlève les quotes doubles ou


simples,
c'est plus lisible! :
<td align=left nowrap=nowrap >article1</td>
Cela fonctionne sous IE, Firefox, Opera... (pas essayé sous Linux).
Mais, j'en conviens, pas très puriste!


Avatar
Olivier Miakinen

<td align="left" nowrap="nowrap">article1</td>
Dans le cas de balises HTML dans du PHP, j'enlève les quotes doubles ou


simples,
c'est plus lisible! :
<td align=left nowrap=nowrap >article1</td>


Dis « je trouve ça plus lisible » plutôt que « c'est plus lisible ».
Pour certains (cf. discussion récente dans f.c.l.javascript), seuls les
guillemets doubles sont lisibles. Pour d'autres, ce sera les guillemets
simples, ou bien des guillemets, quels qu'ils soient. Pour toi c'est de
ne rien mettre... pourquoi pas ? mais fais gaffe que tu ne peux retirer
les guillemets que dans certains cas (là, avec uniquement des lettres,
c'est bon).

Cela fonctionne sous IE, Firefox, Opera... (pas essayé sous Linux).
Mais, j'en conviens, pas très puriste!


C'est parfaitement valide dans toute version d'HTML, y compris HTML 4.0
Strict. Mais personnellement je préfère mettre toujours des guillemets,
c'est ça que je trouve plus lisible. Et bien sûr, si un jour tu trouves
un intérêt à passer à XHTML, là les guillemets seront obligatoires.



Avatar
dwojylac.nospam
Olivier Miakinen <om+ wrote:

Ça ne marchera pas car les variables ne sont pas interprétées dans
des chaînes avec guillemets simples. À la place, on peut utiliser la
concaténation de chaînes, ou plus simplement intervertir les guillemets
simples et doubles :

echo("
<tr>
<td align='left' nowrap='nowrap'>article1</td>
<td align='center'>$quantite1</td>
<td align='center'>20 &euro;</td>
<td align='center'>$montant1 &euro;</td>
</tr>");


Ce qui est étrange c'est que la syntaxe de echo avec des virgules semble
peu utilisée alors que je la trouve très pratique, évite les
concaténations et résoud le pb des variables php et des guillemets du
xhtml.

en l'occurence :
echo '<tr>
<td align="left" nowrap="nowrap">article1</td>
<td align="center">', $quantite1, '</td>
<td align="center">20 &euro;</td>
<td align="center">', $montant1, ' &euro;</td>
</tr>';

echo admet un nombre indéterminé de paramètres
echo 'une chaine ', $variable, 'une autre chaine';

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Avatar
venerzen

<td align="left" nowrap="nowrap">article1</td>
Dans le cas de balises HTML dans du PHP, j'enlève les quotes doubles ou


simples,
c'est plus lisible! :
<td align=left nowrap=nowrap >article1</td>


Dis « je trouve ça plus lisible » plutôt que « c'est plus lisible ».
Pour certains (cf. discussion récente dans f.c.l.javascript), seuls les
guillemets doubles sont lisibles. Pour d'autres, ce sera les guillemets
simples, ou bien des guillemets, quels qu'ils soient. Pour toi c'est de
ne rien mettre... pourquoi pas ? mais fais gaffe que tu ne peux retirer
les guillemets que dans certains cas (là, avec uniquement des lettres,
c'est bon).

Cela fonctionne sous IE, Firefox, Opera... (pas essayé sous Linux).
Mais, j'en conviens, pas très puriste!


C'est parfaitement valide dans toute version d'HTML, y compris HTML 4.0
Strict.


En html 4 strict ?? ça m'étonnerai drôlement..