编辑下拉框
一下是我个人的踩坑之旅,白白浪费了我几个小时时间,暴敛天物啊。
以下这四个示范看着代码一毛一样,
但是错误一和二是不能获取index显示的数据库正确的值,得到的是默认下拉框的第一项。
正确格式一和二才能正确获取到。
言归正传,代码确实是一模一样的,我也纳闷了很久,原因在于格式。
一、示范一
仔细看错误格式一和正确格式一,会发现 “selected{” 和 “ {/in}> ” 的位置不一样,导致未正确显示想要的效果,PhpStorm 一键格式给导致成的错误格式一,使正确的效果没了,让我百思不得其解。
二、示范二的格式
和示范一的一样,也是一键格式,不同于一在于,我手动将 in 和 /in 带括号都在了同一行。
{in name="key" value="$row.routecfg.rc_serial"}
selected
{/in}
错误的示范 格式一
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Ps_angle')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-ps_angle" class="form-control selectpicker" name="row[ps_angle]" value="{$row.ps_angle}">
{foreach name="psAngle" item="vo"}
<option name="key" value="{$key}" {in name="key" value="$row.ps_angle" } selected{
/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
错误示范格式二
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Rc_serial')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-rc_serial" data-rule="required" class="form-control selectpicker" name="row[rc_serial]"
value="{$row.rc_serial}">
<option value="{$row.rc_serial}" selected>{$row.routecfg.rc_name|htmlentities}</option>
{foreach name="Serial" item="vo"}
<option value="{$vo.rc_serial}"
{in name="key" value="$row.routecfg.rc_serial" }
selected
{
/in}
>{$vo.rc_name}</option>
{/foreach}
</select>
</div>
</div>
正确格式一
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Ps_angle')}:</label>
<div class="col-xs-12 col-sm-8">
<!-- <input id="c-ps_angle" class="form-control" name="row[ps_angle]" type="text" value="{$row.ps_angle|htmlentities}">-->
<select id="c-ps_angle" class="form-control selectpicker" name="row[ps_angle]" value="{$row.ps_angle}">
{foreach name="psAngle" item="vo"}
<option name="key" value="{$key}" {in name="key" value="$row.ps_angle" } selected{/in}>{$vo}</option>
{/foreach}
</select>
</div>
</div>
正确格式二
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Rc_serial')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-rc_serial" data-rule="required" class="form-control selectpicker" name="row[rc_serial]" value="{$row.rc_serial}">
<option value="{$row.rc_serial}" selected>{$row.routecfg.rc_name|htmlentities}</option>
{foreach name="Serial" item="vo"}
<option value="{$vo.rc_serial}"
{in name="key" value="$row.routecfg.rc_serial"}
selected
{/in}
>{$vo.rc_name}</option>
{/foreach}
</select>
</div>
</div>
害,几个小时就因为这个问题没了,很纳闷,给路过的朋友减少踩坑吧。