ezles88
ezles88

Reputation: 179

Laravel Multi-select dropdown value not display in edit form

I have table user and branch like this

id name  branch_code
1  ABC   ["011","012","013","014"]
2  DEF   ["014"]

table branch

id branch_code branch_name
1   011        XXX
2   012        YYY
3   013        ZZZ
4   014        WWW

when create a new user, there is multi-select dropdown for BRANCH, so one user can select many branches.

i can save the multi-select dropdown it into table user in column branch_code. But i have problem to show the selected value in edit form

here is the multi-select dropdown for edit form

<select class="form-control" name="branch[]" id="users" multiple>
        @foreach ($branch as $branch)
             <option @if ($branch->branch_code==$user->branch_code)
                      selected
                    @endif value="{{$branch->branch_code}}">
                    {{$branch->branch_name}}
             </option>
         @endforeach
   </select>

the edit controller

 public function edit($id)
{
  
    $branch = Branch::where('status','1')->get();
    $user = User::where('id',$id)->first();
    return view('admin.edit', compact('user','branch'));
}

in edit form, i want to show all branches with selected branches and also unselected branches in the dropdown. and for selected branches, it will highlighted with "selected" remark or something like that. But now it's only show all branches and no remark for selected branches

Upvotes: 2

Views: 794

Answers (1)

NoOorZ24
NoOorZ24

Reputation: 3222

$user->branch_code is array or json string of an array.

If it's json string then $user->branch_code = json_decode($user->branch_code) first.

When you have array - you can do something like:

<option
    @if (in_array($branch->branch_code, $user->branch_code)) selected @endif
    value="{{$branch->branch_code}}"
>
    {{$branch->branch_name}}
</option>

Upvotes: 1

Related Questions