fastadmin学习笔记-----动态下拉框
fastadmin 笔记记录。
把自己遇到的问题以及解决的问题记录以下,并分享出来,给大家参考,同时以免下次自己再踩坑。
这是一个下拉框,原本我的写法
这是编辑中的下拉框。
其中 foreach 中的 typeList 是后端传过来的数据。
原本这么写是没有什么问题的,
但是今天写新的页面的时候,出现了数据和index显示的并不一样。
比如:本来显示的是数据库中 第五行的数据。但是编辑出来的时候显示的是 第六行的数据。
令我苦恼不已,至今没找到问题所在,主要是几乎同样的代码,在别的页面毫无问题。花了一上午时间,最终放弃了这个bug。
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Capacity_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-capacity_id" data-rule="required" class="form-control selectpicker" name="row[capacity_id]">
{foreach name="capachityList" item="vo"}
<option name="key" value="{$vo.mc_serial}"
{in name="key" value="$row.capacity_id"}
selected
{/in}
>{$row.machinecapacity.mc_serial}--{$vo.mc_serial}--{$vo.mc_name} {$row.capacity_id}</option>
{/foreach}
</select>
</div>
</div>
换一种方式
俗话说的好,办法总比困难多,总不能在一棵树上吊死。
于是就有了以下代码。
用if 代替了原先的 in 。问题解决了
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Capacity_id')}:</label>
<div class="col-xs-12 col-sm-8">
<select id="c-capacity_id" data-rule="required" class="form-control selectpicker" name="row[capacity_id]">
{foreach name="capachityList" item="vo"}
<option value="{$vo.mc_serial}" {if $row.capacity_id == $vo.mc_serial} selected {/if} >
{$row.machinecapacity.mc_serial}--{$vo.mc_serial}--{$vo.mc_name}
</option>
{/foreach}
</select>
</div>
</div>
好 了,问题解决了,记录下来,虽然还是没搞懂为啥 in 的问题到底出在哪。