Laravel中如何从数据库取数据并在selectpicker展示?提交后重复显示问题
解决Selectpicker中数据重复展示的问题
嘿,我看到你遇到了selectpicker里数据重复的问题,这是因为你先单独把已提交的目的地作为一个option放在最前面,然后又遍历了完整的目的地列表,当已提交的目的地存在于列表中时,就会出现重复项啦。咱们来调整一下代码,既能正确展示选中的选项,又不会产生重复:
问题根源
你当前的代码先手动添加了一个包含已提交目的地的option,随后又遍历所有目的地生成option,这就导致如果已提交的目的地在列表中存在,就会出现两次相同的选项。同时这种方式也没有正确利用select的selected属性来标记默认选中项。
修改后的代码
<select id="set1" name="res_destination" class="selectpicker form-control edit" data-live-search="true" style="width:100%" disabled required> @foreach($destination as $getData) <option value="{{$getData->REF_TEXT}}" {{ $getData->REF_TEXT == $data[0]->DESTINATION ? 'selected' : '' }}> {{$getData->REF_TEXT}} </option> @endforeach </select>
代码说明
- 移除了之前单独添加的
<option>{{ $data[0]->DESTINATION }}</option>和空option,避免重复。 - 在foreach循环中,通过三元判断
{{ $getData->REF_TEXT == $data[0]->DESTINATION ? 'selected' : '' }},检查当前遍历到的目的地是否和已提交的目的地一致,如果一致就给这个option加上selected属性,这样selectpicker就会默认选中该选项。 - 保持了原有的
disabled属性,确保详情页的下拉框不可编辑,符合展示需求。
这样修改后,下拉框里只会显示一份完整的目的地列表,并且会自动选中你提交的那一项,不会再有重复问题啦。
内容的提问来源于stack exchange,提问作者hendraspt
相关产品推荐
相关产品推荐

