php - CodeIgniter 更新查询不起作用

标签 php mysql ajax codeigniter

我想从系统中解雇一名员工。当单击终止按钮时,会弹出一个对话框询问是否要终止或取消。如果终止数据库值resign应更新为0,但现在按钮不起作用。

这是我的代码

Controller

public function ajax_list()
{
    $list = $this->employees->get_datatables();

    $data = array();
    $no = $_POST['start'];
    foreach ($list as $emp) {
        $no++;
        $row = array();
        $row[] = $emp->employee_id;
        $row[] = $emp->name;
        $jid = $emp->job_title;
        $desigdata = $this->employees->GetJobTitlebyID($jid);
        $row[] = $desigdata->desc;
        $did = $emp->department;
        $deptdata = $this->employees->GetDepartmentbyID($did);
        $row[] = $deptdata->title;
        $secid = $emp->section;
        $secdata = $this->employees->GetSectionbyID($secid);
        $row[] = $secdata->desc;


        //add html for action
        $row[] = '<a class="btn btn-sm btn-primary" href="javascript:void()"  onclick="terminate_emp('."'".$emp->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Terminate</a>';


        $data[] = $row;
    }

    $output = array(
        "draw" => $_POST['draw'],
        "recordsTotal" => $this->employees->count_all(),
        "recordsFiltered" => $this->employees->count_filtered(),
        "data" => $data,
    );

    echo json_encode($output);
}


public function ajax_terminate()
    {
        $this->_validate();
        $data = array(
            'resign' => $this->input->post('resign'),

        );
        $this->employees->update(array('id' => $this->input->post('id')), $data);
        echo json_encode(array("status" => TRUE, "id" => $this->input->post('id')));
    }

型号

 function terminate_emp($data)
 {
     $this->db->where('resign', 0);
     $this->db->update('employees', $data);
 }

查看

function terminate_emp(id)
    {
        save_method = 'update';
        $('#form')[0].reset(); 
        $('.form-group').removeClass('has-error'); 
        $('.help-block').empty(); 

        //Ajax Load data from ajax
        $.ajax({
            url : "<?php echo site_url('employees_con/ajax_terminate/')?>/" + id,
            type: "GET",
            dataType: "JSON",
            success: function(data)
            {
                $('[name="id"]').val(data.id);

                if(data.resign == 1)
                {
                    //$('[name="resign"]').val(data.resign);
                    $('#resign').prop('checked', true);
                }
                $('[name="resign"]').val(data.resign);

                $('#modal_formterminate').modal('show'); // show bootstrap modal when complete loaded
                $('.modal-title').text('Terminate Employee'); // Set title to Bootstrap modal title

            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                alert('Error get data from ajax');
            }
        });
    }



<div class="modal fade" id="modal_formterminate" role="dialog">

    <div class="modal-dialog modal-full" style="max-width: 600px">

    <div class="modal-content">

        <div class="modal-header bg-blue-steel bg-font-blue-steel">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h3 class="modal-title bold uppercase">Person</h3>
        </div>

        <div class="modal-body form">
            <form action="#" id="form" class="form-horizontal">
                <input type="hidden" value="" name="id"/>
                <div class="form-body">

                    <div id="empWizard">


                        <p style="color: #0000cc"><b>Are You sure to Terminate this employee</b></p>

                    </div>
                </div>

            </form>
        </div>

        <div class="modal-footer">
            <button type="button" id="btnSaveterminate" onclick="save()" class="btn btn-primary">Terminate</button>
            <button type="button" class="btn btn-danger" data-dismiss="modal">Cancel</button>
        </div>

    </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->

</div>

最佳答案

在 Controller 中

$this->employees->update(array('id' => $this->input->post('id')), $data);

您正在传递两个参数来更新模型的函数,一个是数组,另一个 $data 也是一个数组。

但是在模型中,

function terminate_emp($data)
{
    $this->db->where('resign', 0);
    $this->db->update('employees', $data);
}

您只是在更新函数中接受一个参数。

关于php - CodeIgniter 更新查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565898/

相关文章:

PHP mail() BCC - 仅显示 To : header 中的最终收件人地址

php - 如何创建动态(支持自定义字段)SaaS 应用程序?

sql - 如何将文件路径或URL放入数据库?

php - 准备好的 PDO 语句在设置变量后中断代码

mysql - 获取在一列中只出现一次的值的数量

javascript - 类型错误 : Cannot call method 'each' of null - Javascript Type error in Joomla ChronoForms

javascript - jQuery Ajax - 错误响应

php - (PHP) html 形式的不同值的不同值

javascript - 如何在javascript中创建新行

jQuery Ajax - 检查字段后如何继续提交表单