2012-02-07 9 views
3

私が表示する変数の値に従って、li要素の位置を設定しようとしています。何らかの理由でこれは機能していないようです。誰かが自分のコードに何か間違っているのを見ますか?ありがとうCSSスタイルif/else文が応答しない

echo "<li class=\"compensation_post posts_values\" if($compensation == \"Free\") {style=\"left: 540px;\"}>$compensation</li>"; 

答えて

3

PHPは二重引用符で囲まれた文字列で変数を解析できますが、条件は解析できません。だから、次のいずれかの方法でこれを抜け出すために必要になるだろう:

別居:

$style = ''; 
if ($compensation == "Free") 
    $style = " style=\"left:540px;\""; 
echo "<li class=\"compensation_post posts_values\"$style>$compensation</li>"; 

またはインライン:

echo "<li class=\"compensation_post posts_values\" " 
    . ($compensation == "Free" ? "style=\"left:540px;" : "") 
    . ">$compensation</li>"; 

私はあなたにもで行くことができると仮定し、 PHPのコードのような:

?><li class=\"compensation_post posts_values\" <?= ($compensation == "Free" ? "style=\"left:540px;\"" : ""); ?>>$compensation</li> 
+0

素晴らしいおかげでたくさん! – noWayhome

0

のようなifステートメントを使用することはできません。代わりに、あなたは省略形を使うことができます。このような何か作業をする必要があります:

あなたは、このように行うことができ

echo "<li class=\"compensation_post posts_values\"" . (($compensation == 'Free') ? 'style=\"left: 540px;\" : '') . ">$compensation</li>";

または、:

if ($compensation == 'Free')
$style = 'style="left: 540px;"';
echo "<li class=\"compensation_post posts_values\" $style>$compensation</li>";