zwl1619
zwl1619

Reputation: 4232

How to show old data of `select` element in Laravel?

How to show old data of select element in Laravel?

Data can be shown in input like this:

<input id="name" name="name" class="form-control" type="text" value="{{ old('name', $user->name) }}">

when the element is select,how to show the old data?

<select class="form-control" name="gender">
    <option value="male">male</option>
    <option value="female">female</option>
</select>

Upvotes: 2

Views: 12697

Answers (4)

e sadeghi
e sadeghi

Reputation: 43

this code show old value if validation fail otherwise show value of element

<select class="form-control" name="gender">
    <option value="male" {{old('gender',$user->gender) == 'male' ? 'selected': ''}}>male</option>
    <option value="female" {{old('gender',$user->gender) == 'female' ? 'selected': ''}} >female</option>
</select>

Upvotes: 0

Relcode
Relcode

Reputation: 521

In my case a ternary operator worked for me.

<select class="form-control" name="gender">
    <option value="male" {{old('gender') == 'male' ? "selected" : ""}}>Male</option>
    <option value="female" {{old('gender') == 'female' ? "selected" : "" }}>Female</option>
</select>

Please be mindful of the double quotes "" around your selected attributes because single quotes will never work.

Upvotes: 0

Shamsheer
Shamsheer

Reputation: 744

Try This:

   <label for="name">Tags</label>
   <select name="tags[]" class="form-control select-tag" multiple>
              @foreach($tags as $tag)
   <option value="{{$tag->id}}" {{in_array($tag->id, old("tags") ?: []) ? "selected": ""}}>{{$tag->name}}</option>
              @endforeach
   </select>

Upvotes: 1

HTMHell
HTMHell

Reputation: 6016

<select class="form-control" name="gender">
    <option value="male" @if (old('gender') == 'male') selected="selected" @endif>male</option>
    <option value="female" @if (old('gender') == 'female') selected="selected" @endif>female</option>
</select>

Upvotes: 15

Related Questions