Как изменить значение таблицы базы данных (логический столбец, для которого задано значение по умолчанию false) при нажатии кнопки с помощью JQuery или codeigniter - PullRequest
0 голосов
/ 30 апреля 2019

Я использую codeigniter datatable, где я хочу «отключить» определенную строку, когда нажимаю кнопку «Удалить» (данные не должны быть удалены из базы данных).

Для этого я уже установил столбец в базе данных (имя столбца: тип данных deleteflag: логическое значение по умолчанию - false).

когда я изменяю это значение с false на true в базе данных, этот конкретный идентификатор (строка tr будет отключена), который я делаю вручную в базе данных.

Я добавил класс с именем $ delstatus в кнопку удаления и назначил массив ('0' => '', '1' => 'disabled')

Все, что я хочу, это чтобы при нажатии на кнопку удаления строка идентификатора была отключена путем изменения логического значения с false на true.

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.

Пожалуйста, помогите обработать с кодом.

Заранее спасибо.

1 Ответ

0 голосов
/ 30 апреля 2019

Я решил свою ошибку ..

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 для отключения строки и false для none)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...