【发布时间】:2014-01-07 10:54:18
【问题描述】:
我的网站使用 PHP、Smarty 和 MySQL。我有一个选择控件。它的代码如下:
<select name="contact_label" id="set_contact_label">
<option value=""> -- Select label-- </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>
等效的HTML输出如下:
<select name="contact_label" id="contact_label">
<option value=""> -- Select label-- </option>
<option value="0" selected="selected">New Enquiry</option>
<option value="1" >Retail Enquiry</option>
<option value="2" >Feedback</option>
<option value="3" >Payment Query</option>
<option value="4" >Package Query</option>
<option value="5" >Test Query</option>
</select>
现在我的问题是,当 if 条件失败时,我希望默认选择 --Select label-- 选项。如果满足 if 条件,则应选择该选项值。现在发生的情况是当 if 条件失败时,值 "New Enquiry" 在选择框中保持选中状态。实际上,我希望在 if 条件失败时默认选择值 --Select label-- 。我尝试了很多来实现这一目标,但未能成功。有人可以在这方面帮助我吗?
【问题讨论】:
-
不知道 smarty 是否可以做到,但您可以测试
in_array()$enquiries_labels 中的 $contact_label 是否,如果不是,则将 selected 添加到第一个选项。我知道 smarty 中有一个{php}块,但不建议您使用它。在 Smarty 中查找 in_array 的内置函数。你也可以用javascript来做到这一点。解析整个选择框,如果不是selected属性,则在第一个选项后追加一个。
标签: php smarty option html-select selected