在smarty表中使用“if”“else”?

时间:2014-01-17 04:23:54

标签: php if-statement foreach smarty smarty3

这是我用于表格的代码:

<tbody>
      {foreach key=num item=referral from=$referrals}
      {if $referral.commission neq "$0.00 USD"}
      <tr>
        <td>{$referral.date}</td>
        <td>{$referral.service}</td>
        <td>{$referral.amountdesc}</td>
        <td>{$referral.commission}</td>
        <td>{$referral.status}</td>
      </tr>
      {/if}
      {foreachelse}
        <tr>
           <td colspan="6">{$LANG.norecordsfound}</td>
        </tr>
      {/foreach}
</tbody>

基本上,如果$referral.commission$0.00 USD,那么我不希望该行显示。但是,现在这些行正在显示,我不确定我做错了什么......

2 个答案:

答案 0 :(得分:2)

这是你的报价。使用单引号并将if语句更改为'$0.00 USD',而不是使用双引号。

<tbody>
      {foreach key=num item=referral from=$referrals}
      {if $referral.commission != '$0.00 USD'}
      <tr>
        <td>{$referral.date}</td>
        <td>{$referral.service}</td>
        <td>{$referral.amountdesc}</td>
        <td>{$referral.commission}</td>
        <td>{$referral.status}</td>
      </tr>
      {/if}
      {foreachelse}
        <tr>
           <td colspan="6">{$LANG.norecordsfound}</td>
        </tr>
      {/foreach}
</tbody>

答案 1 :(得分:0)

试试这个:

<tbody>
{foreach key=num item=referral from=$referrals}
{if $referral.commission neq "$0.00 USD"}
<tr>
  <td>{$referral.date}</td>
  <td>{$referral.service}</td>
  <td>{$referral.amountdesc}</td>
  <td>{$referral.commission}</td>
  <td>{$referral.status}</td>
</tr>
{else}
    <tr>
        <td colspan="6">{$LANG.norecordsfound}</td>
    </tr>
{/if}
{/foreach}
</tbody>

有关在foreach循环中使用if / else的更多详细信息,请参阅http://www.smarty.net/docs/en/language.function.foreach.tpl