php - 在codeigniter中检查AJAX调用是否成功

标签 php jquery ajax codeigniter

我正在使用 AJAX 调用将一些数据插入 MYSQL

JS代码:

$("input.addtruck").click(function (event) {
event.preventDefault();
        var user_id = $("input#user_id").val();
    var numar = $("input#numar").val();
    var serie = $("input#serie").val();
    var marca = $("select#marca").val();
    jQuery.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>" + "aplicatie/add_truck",
        dataType: 'json',
        data: {user_id: user_id, numar: numar, serie: serie, marca: marca},
    });
    success: function (res) {
        if (res)
        {
            jQuery("div#truck_form").hide();
            jQuery("div#success").show();
        } else {
            jQuery("div#error").show();
        }
    }
});

Controller 使用的方法:

    function add_truck() {
            $data = array(
                'user_id' => $this->input->post('user_id'),
                'marca' => $this->input->post('marca'),
                'serie' => $this->input->post('serie'),
                'numar' => $this->input->post('numar')
            );
//Transfering data to Model
            $this->trucks_model->insert_truck($data);
            $data['confirmare'] = 'Data Inserted Successfully';
        }

模型文件中的方法

function insert_truck($data){
$this->db->insert('trucks', $data);
}

基本上我需要隐藏 #truck_form 并在插入数据时显示 #success ,或者显示 #error 。

最佳答案

您需要使用模型中的affect_rows检查数据是否插入到数据库中

型号

function insert_truck($data){
$this->db->insert('trucks', $data);
$afftectedRows=$this->db->affected_rows();
if($afftectedRows>0)
{
    return TRUE;
}
else{
    return FALSE;
}

}

您需要在 Controller 中回显您的结果

Controller

function add_truck() {
            $data = array(
                'user_id' => $this->input->post('user_id'),
                'marca' => $this->input->post('marca'),
                'serie' => $this->input->post('serie'),
                'numar' => $this->input->post('numar')
            );
//Transfering data to Model
        $res=$this->trucks_model->insert_truck($data);
        if($res){
        $data['msg'] = 'true';
        }else{
           $data['msg'] = 'false';
        }
         echo json_encode($data);
        }

Ajax

success: function (res) {
        if (res.msg=='true')
        {
            jQuery("div#truck_form").hide();
            jQuery("div#success").show();
        } else {
            jQuery("div#error").show();
        }
    }

关于php - 在codeigniter中检查AJAX调用是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33537973/

相关文章:

jquery - 使用 FormData api 提交部分表单数据

jquery - 如何通过自定义 jquery 触发多维数据集组合?

javascript - 尝试使用 API 显示服务器返回的数据

php - GLOBALS 参数的使用

javascript - JQuery 提交函数不启动

php - 试图从我的 json 中找到并摆脱这个\u0000

javascript - 将多个 jQuery 动画链接在一起以渐进式动画颜色

javascript - 为什么我*只能*访问 setInterval 内的对象属性?

javascript - 获取 JSON 数组中的特定对象

PHP for 循环处理 sql 结果