[英]Assign variable in smarty?
我給smarty分配了兩個數組: profiles
和selected_id
。 profiles
數組包含所有配置文件的數組, selected_id
數組包含要顯示的配置文件的id。因此,我正在顯示所有配置文件,如下所示:
<select id="countries" class="multiselect" multiple="multiple" name="profiles[]">
{foreach name = feach item = k from = $profiles}
<option value="{$k->bz_pro_id}">{$k->bz_pro_first_name} {$k->bz_pro_last_name}</option>
{/foreach}
</select>
現在,我要默認選擇admin已選擇的ID。 這意味着如果我想在select
option
中添加selected = "selected"
。 為此,我寫道:
{foreach name = feach item = k from = $profiles}
{foreach name = feach2 item = k2 from = $selected_id}
{if $k->bz_pro_id == $k2->bz_pro_id}
selected = "selected"
{/if}
{/foreach}
{/foreach}
那么我可以將select = "selected"
分配給變量,以便在option
使用它嗎?
我已經對此進行了測試,並且可以正常工作。 假設您的數組看起來像這樣:
$profiles[] = array ( 'bz_pro_id' => '1', 'bz_pro_first_name' => 'test1', 'bz_pro_last_name' => 'test2');
$profiles[] = array ( 'bz_pro_id' => '2', 'bz_pro_first_name' => 'test3', 'bz_pro_last_name' => 'test4');
$selected_id = array('1');
您用於訪問變量和數組成員的語法不正確。 這是可行的解決方案:
<select id="countries" class="multiselect" multiple="multiple" name="profiles[]">
{foreach name=feach item=k from=$profiles}
<option value="{$k.bz_pro_id}"
{if in_array($k.bz_pro_id, $selected_id)}selected{/if}>
{$k.bz_pro_first_name} {$k.bz_pro_last_name}
</option>
{/foreach}
</select>
您可以使用以下代碼。
<select id="countries" class="multiselect" multiple="multiple" name="profiles[]">
{foreach name = feach item = k from = $profiles}
<option value="{$k->bz_pro_id}" {if $k->bz_pro_id|in_array($selected_id)}selected = "selected"{/if} >{$k->bz_pro_first_name} {$k->bz_pro_last_name}</option>
{/foreach}
</select>
{assign var="name" value="Bob"}
參考: http : //www.smarty.net/docs/en/language.function.assign.tpl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.