Радиокнопка не обновляется в базе данных через ajax в codeigniter - PullRequest
0 голосов
/ 11 июля 2019

переключатель не работает, когда я выбираю второй вариант, он останется в первом варианте.

код AJAX:

$(document).ready(function(){
$('#btn_update').on('click',function(){
        var id = $('#id').val();
        var fname = $('#fname').val();
        var lname = $('#lname').val();
        var mobile = $('#mobile').val();
        var dob = $('#dob').val();
        var gender = $('#gender').val();
        $.ajax({
            type : "POST",
            url  : "<?php echo base_url('home/update_profile')?>",
            dataType : "JSON",
            data : {id:<?php echo $row->id ?>, fname:fname, lname:lname, mobile:mobile, dob:dob, gender:gender},
            success: function(data){
                //alert(data);
            }
        },window.location.href = '<?php echo base_url('home/list_user')?>');
        return false;
    });

})

мой взгляд:

<div class="form-group">
                                            <h4>Gender</h4>
                                            <div class="radio">
                                                <label>
                                                  <input type="radio" name="gender" id="gender" value="male"<?php if($row->gender == 'male') echo "checked"; ?>><span style="font-weight: bolder; font-size: 15px;">Male</span>
                                                </label>
                                            </div>
                                            <div class="radio">
                                                <label>
                                                <input type="radio" name="gender" id="gender" value="female"<?php if($row->gender == 'female') echo "checked"; ?>><span style="font-weight: bolder; font-size: 15px;">Female</span>
                                                </label>
                                            </div>
                                            <span class="text-danger"><?php echo form_error("gender");?></span>
                                        </div><br>

мой контроллер:

$data=array(
              'id' => $this->input->post('id'),
              'fname' => $this->input->post('fname'),
              'lname' => $this->input->post('lname'),
              'mobile' => $this->input->post('mobile'),
              'dob' => $this->input->post('dob'),
              'gender' => $this->input->post('gender')
            );
            $this->user->update_data($data, $this->input->post("id"));
            echo json_encode($data);

И моя модель:

public function update_data($data, $id)
    {
        $this->db->set($data);
        $this->db->where("id", $id);
        $result = $this->db->update("user");
        return $result;
    }

это весь код переключателя, который не обновляется в базе данных. это остаться на их первом варианте, который является мужчиной, а не женщиной

1 Ответ

0 голосов
/ 11 июля 2019

Измените ID в каждом теге input, чтобы сделать их разными:

<div class="form-group">
 <input type="radio" name="gender" id="gender_m" value="male"<?php if($row->gender == 'male') echo "checked"; ?>><span style="font-weight: bolder; font-size: 15px;">Male</span>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="gender" id="gender_f" value="female"<?php if($row->gender == 'female') echo "checked"; ?>><span style="font-weight: bolder; font-size: 15px;">Female</span>
</label>
</div>
<span class="text-danger"><?php echo form_error("gender");?></span>
</div><br>

У вас есть два входа с одинаковым ID , это плохо. Когда вы спрашиваете DOM по $('#gender').val(), он принимает единственное первое значение. Вы должны получить checked, как я понял.

var gender = $('input#gender_m:checked').val() ? 'male' : 'female';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...