首页 > 解决方案 > 使编辑表单在多个选择框中显示选定的值,它选择数据但将数据加倍

问题描述

它选择了该选项,但它使数据加倍使数据加倍。

我试过了,但它对我没有帮助。

{{ in_array( $rsmsl , $data['state'] ) ? 
    < option selected value = "{{ $rsms->statesId }}" > {{$rsms->statesName}} </option>                                                 :
    < option  value=" {{ $rsms->statesId }}" > {{ $rsms->statesName }} </option> }}

控制器代码

    public function editEmp($id){


            $task = DB::table('user')
                ->where('user.userId', '=', $id)
                ->select('user.*')
                ->get()[0];


            $states = DB::table('states')
                ->select('states.*')
                ->get()
                ->toArray();

            $role = DB::table('roll')
                ->select('roll.*')
                ->get();

            $sd = DB::table('sddetail')
                ->select('sddetail.*')
                ->get();

            $avp =   DB::table('avpdetail')
            ->select('avpdetail.*')
            ->get();

            $allData = array("user" => $task, "state" => $states, "role" => $role, "sd" => $sd, "avp" => $avp);


            return view('modal.editemp', ['data' => $allData]);

}

用于查看数据的刀片模板。

    <?php
        $rsmex = explode(",",$data['user']->statesId);
    ?>


        <lable for="addStorename1" >Market Name</label>
            <select class="form-control my-select"  data-live-search="true" data-actions-box="true"  placeholder="Enter Role" name="Statename[]" multiple  >    
        @foreach($rsmex as $rsmsl)
                @foreach($data['state'] as $rsms)
                    <option @if ( $rsmsl == $rsms->statesId ) {{"selected"}} @endif value={{$rsms->statesId}}>{{$rsms->statesName}}</option>
                @endforeach
        @endforeach 
         </select>

标签: phplaravel-5laravel-blade

解决方案


   <?php
        $rsmex = explode(",",$data['user']->statesId);
    ?>
 @foreach($rsmex as $rsmsl)
   @foreach($data['state'] as $rsms)
     <option @if ( $rsmsl == $rsms->statesId ) {{"selected"}} @endif value={{$rsms->statesId}}>{{$rsms->statesName}}</option>
   @endforeach
@endforeach 

我不确定$rsmex. 但如果 的长度$rsmex为 2,它将循环遍历所有$data['state']两次。然后你得到了两次这些选项数据。

也许这就是您想要实现的目标?只是循环遍历状态,看看用户是否有那个 statesID?

   @foreach($data['state'] as $rsms)
     <option @if (in_array($rsms->statesId, $rsmex)) {{"selected"}} @endif value={{$rsms->statesId}}>{{$rsms->statesName}}</option>
   @endforeach


推荐阅读