Opérateur ternaire : Pb de syntaxe

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Opérateur ternaire : Pb de syntaxe

par zeus » 27 févr. 2007, 13:24

Quelqu'un peut mettre le tag Résolu???
C'est fait ;)

Mais n'oublie pas que ce n'est pas une critique, plutôt un conseil pour la prochaine fois que tu auras ce soucis ;)

par Invité » 27 févr. 2007, 13:23

c'est vrai que ca aurait pu me mettre sur la voie...
d'un autre côté, quand on "appelle au secours" c'est bien que l'on passe à côté de qq chose d'évident...selon le point de vue des autres :)

Peu importe, ca fonctionne. Merci de ton aide !!
Quelqu'un peut mettre le tag Résolu???

A+

par Ryle » 27 févr. 2007, 13:04

Il te suffit simplement de découper en plusieurs chaines concaténées :
echo "<table><tr>" 
    ."<td bgcolor = '" . (($bg == 1) ? "#ffffff" : "#AAF2D3") . "'></td>" 
    ."<td>blalba</td>" 
    ."</tr></table>";
La coloration syntaxique de ton code, et le fait que l'on répète à tout bout de champ qu'il faut toujours sortir ses variables des chaines, auraient pu te mettre sur la voie ;)

par Invité » 27 févr. 2007, 12:34

Albat :
Dans ta proposition le html et le php sont dissociés.
Pour la raison évoquée + haut, je ne peux pas faire ca.
C'est tellement dommage !!

par albat » 27 févr. 2007, 12:24

<table>
<tr>
    <?php
    $bg = une valeur;
    echo "<td style='background-color:",($bg==1 ? "#FFFFFF" : "#AAF2D3"),"'></td>";
    ?> 
    <td>blalba</td></tr>
</table>

par Invité » 27 févr. 2007, 12:24

Truc :

je ne peux pas separer le php du html car je travaille sous SPIP.

Ta solution fonctionne (je t'en remercie), sauf que j'ai pas mal de celulle à tester de la sorte. Je dois donc integrer l'opérateur ternaire au fur et à mesure de la construction du tableau html par le script php (et non pas par à coup).
En fait (mais c'est encore une mauvaise formulation de ma part), je cherche la syntaxe correcte qui fonctionnera à chaque celulle à laquelle je l'appliquerai.

par Invité » 27 févr. 2007, 12:20

je me suis probablement mal exprimé...
Je suis bien dans le cadre d'un script php :
<?php
$bg = une valeur;

echo "<table><tr>"
	."<td bgcolor = '(".$bg."' == 1)? #ffffff : #AAF2D3'></td>"
	."<td>blalba</td>"
	."</tr></table>";

?>
et donc...ca ne fonctionne pas.

Re: Opérateur ternaire : Pb de syntaxe

par Truc » 27 févr. 2007, 12:17

Salut,
Je précise qu'il ne m'est pas possible, dans mon code, de séparer le html et le php.
Ta ta ta :non:
Pourquoi ?
<table><tr>
<?php
$bg = une valeur;
$couleur = ($bg == 1)? "#ffffff" : "#AAF2D3";
?>
<td bgcolor = '<?php echo $couleur;?>'> 
tu avais trop des guillemets un peu mal placés.

par albat » 27 févr. 2007, 12:15

L'opérateur ternaire ne fonctionne qu'au sein d'un script (PHP, Javascript, etc.)
Dans ton code, tu insères une fonction PHP (l'opérateur ternaire) dans du HTML.
Il n'y a pas de script ! :shock:

Cela ne peut donc pas marcher...

Opérateur ternaire : Pb de syntaxe

par Invité » 27 févr. 2007, 12:11

Bonjour à toute la communauté,
je n'arrive pas à ecrire correctement un opérateur ternaire à l'interieur d'un <td> (tableau html).
Je précise qu'il ne m'est pas possible, dans mon code, de séparer le html et le php.

Cet opérateur ternaire, suivant son résultat, doit me permettre de determiner la couleur de fond (bgcolor) du <td>

Ainsi :
$bg = une valeur;
<td bgcolor = '(".$bg."' == 1)? #ffffff : #AAF2D3'>
Mais ca ne fonctionne pas. Avez-vous une idée?
Merci d'avance.