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 的问题到底出在哪。

你可能感兴趣的:(PHP,学习,笔记,fastAdmin,PHP)