0

我正在尝试根据 PHPIF条件显示原始 HTML 表格,但它不起作用。

你能告诉我有什么问题吗?

此代码是 html 电子邮件的一部分。$heating如果变量更大,我想显示原始数据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 回答