fastadmin学习笔记-----动态下拉框

文章描述了作者在使用foreach遍历数据时,下拉框中的数据与预期不符的问题。通过将`in`条件替换为`if`,解决了显示问题。虽然问题解决,但未找到具体原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值