2012-11-09 41 views
0
<select name="country[]" multiple="multiple" id="type" class="medium" style="width:20%;height:300px;"> 
    <option value="United States">United States</option> 
    <option value="Canada">Canada</option> 
     <option value="United Kingdom">United Kingdom</option> 
    <option value="Australia">Australia</option> 
    <option>---------------------------------</option> 

    {foreach from=$country key=id item=n} 
    {foreach from=$cntry key=i item=name} 

     <option value="{$n}" {if $name == $n}SELECTED{/if}>{$n}</option> 
    {/foreach} 
    {/foreach} 
</select>  

出於某種原因,它的4次重複每一個國家我有一個數組列表,它不選擇從$cntry匹配$country的那些的人。SmartyPHP多的foreach

$cntry(從DB中的行中選擇國家),而$country只是所有國家的數組列表。

+0

可以打印如{$ name}的 - {$ N},看看究竟看重你得到? – GBD

+0

$ name =美國,加拿大,澳大利亞,阿爾巴尼亞。從數組中爆炸。 $ n =數組中所有國家的列表。 –

+0

你可以粘貼$ country和$ cntry的數組結構嗎? – GBD

回答

0

你嵌套了你的循環。他們或許應該做串行:

{foreach from=$country key=id item=n} 
    <option blah blah blah> 
{/foreach} 
{foreach from=$cntry key=i item=name} 
    <option blah blah blah > 
{/foreach} 
+0

他們需要一起工作,而不是分開。例如: $ cntry =美國,加拿大,澳大利亞,阿爾巴尼亞。我將這些分解成了一個數組,這樣當我將forreach添加到$ country時,它將根據$ cntry進行選擇。 –

+0

根據我的理解,您希望選定的日期顯示在列表的其餘部分,因此Marc的回答正是您所需要的。 – Bojangles

0

你可以試試這個方法:

{foreach from=$country key=id item=n} 
    {assign var=sel value=''} 
    {foreach from=$cntry key=i item=name} 
     {if $name == $n}{assign var=sel value='selected'}{/if} 
    {/foreach} 
     <option value="{$n}" {$sel}>{$n}</option> 
    {/foreach} 
+0

什麼都沒有發生,謝謝反正。 –

+0

它給你什麼?任何輸出或錯誤? – GBD

+0

沒有錯誤,沒有被選中,但重複的項目是固定的。 –