【问题标题】:Why the condition is getting satisfied even after not assigning a value to a variable in smarty template?为什么即使没有为 smarty 模板中的变量赋值,条件也会得到满足?
【发布时间】:2014-01-10 13:33:27
【问题描述】:

我正在为 smarty 模板分配一个数组,如下所示:

    $enquiries_labels = array("0"=>"New Enquiry",
                                                        "1"=>"Retail Enquiry",
                                                        "2"=>"Feedback",
                                                        "3"=>"Payment Query",
                                                        "4"=>"Package Query",
                                                        "5"=>"Test Query");

$smarty->assign('enquiries_labels',  $enquiries_labels);

现在我的 smarty 模板代码如下:

    <select name="contact_label" id="contact_label">
      <option value="" {if $contact_label == ''} selected="selected" {/if}>All</option>
       {if $enquiries_labels}
         {foreach from=$enquiries_labels item=label key=key}
         <option value="{$key}" {if $contact_label == $key} selected="selected" {/if}>{$label}</option>
         {/foreach}
       {/if}
   </select>

如果我没有为 PHP 文件中的变量 $contact_label 赋值,那么我没有得到,那么为什么默认选择具有键 0 的选项 New Enquiry。实际上它应该默认选择值“All”。有人可以在这方面帮助我吗?

【问题讨论】:

    标签: php foreach smarty


    【解决方案1】:

    这可能是因为类型转换空 $contact_label 与整数相比转换为 0 并且 {if $contact_label == $key} 对于 $key==0 为 true 当多个选项都已选择=“已选择”时,实际上选择了最后一个

    【讨论】:

    • 是的,这也是我认为的可能性。那么有什么解决方案呢?你有什么好主意吗?
    • 在条件下尝试使用 === 而不是 ==
    • 和(或){如果! isset($contact_label)} 在第一个选项中
    • 几天前我从您的其他帐户 PHPGeek 中回答了同样的问题:stackoverflow.com/questions/20969801/…。请尽量不要重复相同的问题。
    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 2020-12-24
    • 2019-04-05
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多