Smarty PHP多个Foreach

时间:2012-11-09 15:18:19

标签: php html mysql smarty

<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中匹配的国家/地区相匹配的那些国家/地区。

$cntry(来自数据库中行的所选国家/地区),而$country只是所有国家/地区的数组列表。

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分: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}