blastme
blastme

Reputation: 429

Editing radio button in laravel

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

Answers (3)

ravi darji
ravi darji

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

MalemScha
MalemScha

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

parker_codes
parker_codes

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

Related Questions