Значение флажка Codeigniter обновляется только один раз, а не проверяется / не проверяется - PullRequest
0 голосов
/ 29 мая 2018

Я сталкиваюсь с этой проблемой, что мое поле флажка в Базе данных установлено на tinyint(1) и значение по умолчанию в "0" проблема, когда я "проверял" флажок и обновляю через этот код, который успешно обновил и значение базы данныхизменил «0» на «1», и когда я снова протестирую код на этот раз, чтобы «снять флажок», установите флажок и обновите, тогда ничто не происходит с экраном, не отображает никаких ошибок и не обновляет значение на этот раз «1» до «0» ...

Модель:

public function updateCheckbox($table, $id, $data)
{
    $this->db->where('membership_id', $id);
    return $this->db->update($table, $data);
}

Контроллер:

public function edituserstatus($id)
{
    $checkbox = isset($_POST['checkbox']) ? 1 : 0;
    if($this->input->post()){
        $data = array(
            'isactive' => $checkbox,
        );
        $this->member_model->updateCheckbox('users', $id, $data);

        $this->session->set_flashdata('success', 'Updated Successfully!');
        redirect(base_url().'admin/edituserstatus/'.$id, 'refresh');
    }else{
        $data['editdata'] = $this->member_model->getUserDataforEdit($id);
        $this->load->view('admin/edituserstatus', $data);
    }
}

Вид

<form action="<?php echo base_url()."admin/edituserstatus/".$editdata->membership_id ?>" method="post">
   <input type="checkbox" name="isactive" value="<?php echo $editdata->isactive; ?>" <?php echo ($editdata->isactive == 1 ? 'checked' : 0); ?> />
   <br /> <br />
   <button type="submit" class="btn btn-primary btn-sm">Update</button>
</form>

Я слишком много пробовал со всего интернета, но не получил никакого ответа, надеюсь, я получу ответ отсюда ... Спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Вид

<form role="form" method="post" action="<?php echo base_url('controller/update');?>">
<div class="form-group">
    <label> Name </label>
    <input type="text" class="form-control" name="name">
</div>
<div class="form-group">
    <input type="checkbox" value="1"> name="checkbox_value" <?php if(isset($formData) && $formData->checkbox_value==1){ echo "checked";} ?>>
</div>
<button type="submit" class="btn btn-primary">Submit</button>

Контроллер

public function edit($id='')
{ 
    $this->data['formData'] = $this->model->get_data_by_id($id);
    $this->load->view('view_page', $this->data);
}

public function update($id=''){     
    if(isset($_POST)){
        $checkbox_value = isset($_POST['checkbox_value']) ? 1 : 0;
        $data = array(
            'name' => $_POST['name'],
            'checkbox_value' => $checkbox_value
        );
        $this->model->update($id,$data);            
    }
    redirect('controller/edit');
}

Модель

public function get_data_by_id($id='')
{ 
    $result = $this->db->select('*')->where('id', $id)->get('table_name')->row();
    return $result;
}

public function update($id='',$data)
{ 
    $this->db->where('id',$id);
    $result = $this->db->update('table_name',$data);
    return $result;
}
0 голосов
/ 29 мая 2018

Модель

public function updateCheckbox($table,$data, $id) {

    $this->db->where('id',$id);
    $update=$this->db->update($table,$data);

    return $update?true:false;
}

Контроллер

public function edituserstatus($id){

    $data['status'] = $this->input->post('status');

    $result = $this->member_model->updateCheckbox('users', $id, $data);
    echo json_encode($result);
}

Вид

$(document).on('click',"input",function(){ 

    var status = null;
    var id = $(this).attr('id');
    if(this.checked)
    {
        status = 1;
    }
    else
    {
        status = 0;
    }

    $.ajax(
    {
        type: "POST",
        url : "<?php echo base_url(); ?>"+"admin/edituserstatus/"+id,
        data: {'status':status},
        success:function(data)
        {  
            console.log(data);
        }, 
    }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...