Reputation: 429
I am trying to edit data using radio button but whenever I try to edit it, the result return are blank. I have search for other people post similar to his but it still doesn't work (eg: Edit Radio Button / Dropdown list)
Could I have done something wrong here?
When I used the dd function on it, it will just return me this:
"gender" => null
But previously I used this I can get my result <input type="text" name="gender" value="{{ $object->gender }}" class="form-control">
Here is my code:
<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
{{ method_field('PUT') }}
{{ csrf_field() }}
<label class="col-md-2">Gender:</label>
<div class="col-md-6">
<input type="radio" name="gender" value="{{$object->male}}"> Male<br>
<input type="radio" name="gender" value="{{$object->female}}"> Female<br>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
Controller:
public function edit($id){
$object = user_info::find($id);
return view('edit', compact('object'));
}
public function update(Request $request, $id){
$object = user_info::find($id);
$object->gender = $request->input('gender');
//$object->update();
dd($object);
return redirect('/home');
}
Upvotes: 1
Views: 19217
Reputation: 1
<div class="form-group">
<input name="gender" id="gender" value="male" type="radio" />Male
<input name="gender" id="gender" value="female" type="radio" />Female
<script type="text/javascript">
document.forms['form'].elements['gender'].value='{{$register->gender}}'
</script>
Upvotes: 0
Reputation: 323
The problem is you haven't selected any option in your form. I would suggest you to wrap the options inside select tag. You have to use an if statement (conditional will work find here) that checks if a value is true then print out checked="checked" which indicates the radio button is selected.
Here's the code:
Dropdown
<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
{{ method_field('PUT') }}
{{ csrf_field() }}
<label class="col-md-2">Gender:</labe
<div class="col-md-6">
<select name="gender" id="gender" class="form-control" required>
<option value="">Choose....</option>
<option value="Male" {{ $object->gender == 'Male' ? 'selected' : ''}}>Male</option>
<option value="Female" {{ $object->gender == 'Female' ? 'selected' : ''}}>Female</option>
</select>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
Radiobutton
<form class="form-horizontal" method="post" action="{{ url('/user/show/'.$object->id) }}">
{{ method_field('PUT') }}
{{ csrf_field() }}
<label class="col-md-2">Gender:</labe
<div class="col-md-6">
<input type=radio name="Gender" value="Male" {{ $object->gender == 'Male' ? 'checked' : ''}}>Male</option>
<input type=radio name="Gender" value="Female" {{ $object->gender == 'Female' ? 'checked' : ''}}>Female</option>
</div>
<div class="form-group">
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</div>
</form>
Upvotes: 8
Reputation: 3397
<div class="col-md-6">
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
</div>
The use of an object may not be your best approach here. I would use the static String values of "male" and "female". Here is a guide on a Laravel approach to radio buttons for gender.
Upvotes: 1