Php SMARTYPPP多重Foreach
出于某种原因,它会将数组列表中的每个国家重复4次,而不是从$cntry中选择与$country中的国家匹配的国家Php SMARTYPPP多重Foreach,php,html,mysql,smarty,Php,Html,Mysql,Smarty,出于某种原因,它会将数组列表中的每个国家重复4次,而不是从$cntry中选择与$country中的国家匹配的国家 $cntry从数据库中的行中选择了国家,而$country只是所有国家的数组列表。您已经嵌套了循环。它们可能应该连续进行: <select name="country[]" multiple="multiple" id="type" class="medium" style="width:20%;height:300px;"> <option value="
$cntry从数据库中的行中选择了国家,而$country只是所有国家的数组列表。您已经嵌套了循环。它们可能应该连续进行:
<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>
您可以这样尝试:
{foreach from=$country key=id item=n}
<option blah blah blah>
{/foreach}
{foreach from=$cntry key=i item=name}
<option blah blah blah >
{/foreach}
你能像{$name}-{$n}那样打印出来,看看你得到的确切值是多少吗?$name=美国、加拿大、澳大利亚、阿尔巴尼亚。从阵列中爆炸$n=数组中所有国家/地区的列表。能否粘贴$country和$cntry的数组结构?它们需要一起工作,而不是单独工作。例如$cntry=美国、加拿大、澳大利亚、阿尔巴尼亚。我将这些数据分解成一个数组,这样当我将forreach添加到$country中时,它将基于$cntry进行选择。据我所知,您希望所选日期显示在列表的其余部分之上,因此Marc的答案正是您需要的。没有错误,没有选择任何内容,但项目的重复是固定的。
{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}