0

IFPHPの条件に基づいて HTML テーブルを raw で表示しようとしていますが、うまくいきません。

何が間違っているのか教えてください。

このコードは HTML メールの一部です。$heating変数が大きい場合は raw を表示したい0

PHP コード:

<table border=\"1\">
    <tr>
        <td>Rental, cleaning and Taxes</td>
        <td align=right>$rent</td>
    </tr>
    <?php if ($heating > 0) ?>
    <tr>
        <td>Pool heating</td>
        <td align=right>$heating</td>
    </tr>
    <?php endif; ?>
    <tr>
        <td>BBQ</td>
        <td align=right>$bbq</td>
    </tr>
    <tr>
        <td>Refundable Damage deposit</td>
        <td align=right>250</td>
    </tr>
    <tr>
        <td>Total(includes all taxes and fees</td>
        <td align=right>$total</td>
    </tr>
</table> 

メール表示:

Rental, cleaning and Taxes 1150 
Pool heating 0 
BBQ 50 
Refundable Damage deposit 250 
Total(includes all taxes and fees 1450 
4

4 に答える 4

1

代替制御構造構文を間違って使用しています:

<?php if ($heating > 0): ?>
                       ^--- missing

コロンがないと、ワンライナーに相当するものを書いていることになります

if (somecondition) 
   do_a_one_line_action;
于 2012-09-24T01:26:23.923 に答える
1

実際には、どの変数もPHPコード内にありません。それらはでラップする必要があります<?php echo $var; ?>。次のパターンをすべてのHTML埋め込みPHP変数に適用します$heating, $bbq, $total

// As in:
<td align='right'><?php echo $heating; ?></td>

テンプレート構文の構文エラーについては、上記のMarcBの回答を参照してくださいif

于 2012-09-24T01:26:35.863 に答える
1

こんな感じじゃないですか?

<?php if ($heating > 0) { ?>
<tr>
<td>Pool heating</td>
<td align=right><?=$heating?></td>
</tr>
<?php } ?>
于 2012-09-24T01:28:36.063 に答える
1

これは次のような変数にあると思います。

HTMLtext = "<table border=\"1\">  
    <tr>  
    <td>Rental, cleaning and Taxes</td>  
    <td align=right>$rent</td></tr>  
    <?php if ($heating > 0) ?>  
    <tr>  
    <td>Pool heating</td>  
    <td align=right>$heating</td>  
    </tr>  
    <?php endif; ?>  
    <tr>  
    <td>BBQ</td>
    ....
"

その場合、PHPコードは実行されません-文字列に含まれます(その後、電子メールクライアントによって削除されます)

あなたはビットに分割する必要があります:

HTMLtext = "<table border=\"1\">  
    <tr>  
    <td>Rental, cleaning and Taxes</td>  
    <td align=right>$rent</td></tr>";

if ($heating > 0) {
    HTMLtext .= "
    <tr>  
    <td>Pool heating</td>  
    <td align=right>$heating</td>  
    </tr>";
}

HTMLtext .= "
    <tr>  
    <td>BBQ</td>
    ....
";
于 2012-09-24T01:28:54.503 に答える