簡體   English   中英

使用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

我使用codeigniter datatable,當我點擊刪除按鈕時我想“禁用”特定的行(數據不應該從數據庫中刪除)。

為此我已經在數據庫中設置了一列(列名:deleteflag數據類型:布爾默認值為false)。

當我在數據庫中將該值從false更改為true時,將在數據庫中手動執行該特定id(tr行將被禁用)。

我在刪除按鈕中添加了一個名為$ delstatus的類並分配了一個數組('0'=>'','1'=>'禁用')

我想要的是,當我點擊刪除按鈕時,應該通過將布爾值從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將boolean值從false更改為true來禁用id行。

請幫助處理代碼。

提前致謝。

我解決了我的錯誤..

Thnx @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,對於none禁用false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM