Reputation: 4232
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
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
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
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
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