我正在将一个名为$enquiries_labels
的数组从php文件分配到一个智能模板文件。如果我在PHP文件中打印数组,它的输出如下:
Array
(
[0] => New Enquiry
[1] => Retail Enquiry
[2] => Feedback
[3] => Payment Query
[4] => Package Query
[5] => Test Query
)
现在,在将此数组分配给smarty文件之后,我想在选择HTML控件中访问这些值。为此,我需要使用智能模板引擎的foreach循环结构。如果预先选择的值与数组中的键匹配,那么我将保持选择该值。为了实现这一点,我尝试了下面的代码,但它对我不起作用。有人可以帮我这方面吗?作为参考,我把它放在我在smarty模板中尝试的代码之下:
<select name="contact_label" id="contact_label">
{if $enquiries_labels}
{foreach from=$enquiries_labels item=label}
<option value="{$label.key}" {if $data.key == $label.key} selected="selected" {/if}>{$label.value}
</option>
{/foreach}
{/if}
</select>
感谢你花了一些宝贵的时间来理解我的问题。
答案 0 :(得分:10)
在key
:
foreach
{foreach from=$enquiries_labels item=label key=key}
<option value="{$key}" {if $data.key == $key} selected="selected" {/if}>{$label}
</option>
{/foreach}
这就是documentation中的所有内容。
答案 1 :(得分:5)
Smarty 3 foreach构造就像这样
{foreach $products as $p}
{$p@key}: {$p}
{/foreach}
答案 2 :(得分:2)
使用key
属性。
{foreach from=$enquiries_labels item="label" key="key"}
<option value="{$key}"{if $data.key == $key} selected="selected"{/if}>{$label}</option>
{/foreach}
答案 3 :(得分:1)
这也有效
{foreach $products as $product}
key: {$product@key} -> value: {$product@value}
{/foreach}
{$product@value} = {$product}
答案 4 :(得分:0)
你可以这样做:
{foreach $enquiries_labels as $key => $value}
<option value="{$key}" {if $data.key == $key} selected="selected" {/if}>
{$value}
</option>
{/foreach}