使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)

Posted

技术标签:

【中文标题】使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)【英文标题】:How to change the value of the database table (Boolean Column which is set as default false) when button is clicked using JQuery or codeigniter 【发布时间】:2019-09-19 01:55:06 【问题描述】:

我正在使用 codeigniter 数据表,我想在单击删除按钮时“禁用”特定行(不应从数据库中删除数据)。

为此,我已经在数据库中设置了一个列(列名:deleteflag 数据类型:布尔默认值为 false)。

当我在数据库中将该值从 false 更改为 true 时,我在数据库中手动执行的特定 id(tr 行将被禁用)。

我在删除按钮中添加了一个名为 $delstatus 的类并分配了一个数组 ('0'=>' ', '1'=> 'disabled')

我想要的是,当我点击删除按钮时,应该通过将布尔值从 false 更改为 true 来禁用 id 行。

Here is my  Controller:

    $active_info = array('0'=>'','1'=>'disabled');
          foreach ($list as $lists) 
          
              $delstatus=$active_info[$lists->deleteflag];
              $row = array();
              $slno++;
              $row[] = '<input type="checkbox" class="'.$delstatus.' data-check" value="'.$lists->id.'" onclick="showBottomDelete()"/>';
              $row[] = $slno;
              $row[] = '<a class="btn '.$delstatus.' btn-sm btn-primary" href="javascript:void(0)" title="Edit"  onclick="editCase('."'".$lists->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
                    <a class="btn '.$delstatus.' btn-sm btn-danger" id="btnDelete" href="javascript:void(0)" title="Delete"  onclick="deleteCase('."'".$lists->id."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';


Here is the  view for delete in ajax:

    function deleteCase(id)
    
        if(confirm('Are you sure delete this data?'))
        

            // ajax delete data to database
            $.ajax(
                url : "<?php echo site_url('case/ajax_delete')?>/"+id,
                type: "POST",
                dataType: "JSON",
                success: function(data)
                
                    //if success reload ajax table
                    $('#modal_form').modal('hide');
                        reloadTable();

                ,
                error: function (jqXHR, textStatus, errorThrown)
                
                    alert('Error deleting data');
                
            );

        
    

    </script>

Controller for delete:

public function ajax_delete($id)
       
        $this->HomeModel->delete_by_id($id);
        echo json_encode(array("status" => TRUE));
    

Model for delete:

public function delete_by_id($id)
     
      $this->db->where('case_main.id',$id);
      $this->db->delete('case_tracker.case_main');
      $this->db->where('case_overview.id',$id);
      $this->db->delete('case_tracker.case_overview'); 

    

注意:- case_tracker 是我的架构名称(我使用 postgre sql),case_main 和 case_overview 是我的表名

我想要的是,当我单击删除按钮时,应该通过使用 codeigniter 函数或 jquery 将布尔值从 false 更改为 true 来禁用 id 行。

请帮助处理代码。

提前致谢。

【问题讨论】:

你的函数在哪里ajax_delete @shibon 我添加了要删除的控制器和模型。 您需要在查询中进行更新操作,而不是删除 $this->db->update('case_tracker.case_main',array('deleteflag'=>$delete_flag),array('id'=>$row['id'])) ;这段代码正确吗?我应该在模态中使用这一行而不是删除吗? 【参考方案1】:

我解决了我的错误..

感谢 @Shibon 发现我的愚蠢(但很大)错误。

将我的模型更改为:

public function delete_by_id($id)
     
      $this->db->update('table_name',array('deleteflag' => '1'),array('id'=>$id));
       if ($this->db->affected_rows())
        
            return true;
        
        else
        
            return false;
        

注意:- deleteflag 是列名,用作布尔值 true 或 false。 (true 表示禁用该行,false 表示无)

【讨论】:

以上是关于使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 图片上传使用 jquery 和 ajax 错误 [重复]

或在我的 SQL 查询(使用 CodeIgniter 生成)中不使用 jQuery DataTables

在 CodeIgniter 的 url_title 函数中将单引号转换为分隔符

插件在 CodeIgniter 中不起作用

jQuery/Js 循环遍历 Codeigniter MySQL 输出的数据

使用 codeigniter 和 jquery 进行 AJAX 分页