codeigniter - 删除特定的表行而不删除它在数据库

时间:2016-05-21 12:50:12

标签: php mysql codeigniter

我是codeigniter的新手。我需要一些帮助来解决我的问题。

所以我有一个表填充了我从数据库获取的数据(只显示类别“no_registrasi”的最后一个时间戳)。并且“Selesai”中有一个选项可以删除html表中的行而不删除数据库中的行。我已经试图找到解决方案,但我不知道该怎么做。

这是我的表格html

<table id="tabel-pas" class="table table-striped table-bordered dt-responsive wrap" cellspacing="0" width="100%">
          <thead>
            <tr>
              <th>Waktu</th>
              <th>No. Registrasi</th>
              <th>No. Rekam Medis</th>
              <th>Nama Dokter</th>
              <th>Nama Pemilik</th>                   
              <th>Nama Hewan</th>                      
              <th>Aksi</th>           
            </tr>
          </thead>
          <tbody>
            <?php
              $no = 1;
              foreach($daftar_inap_aktif as $row){
              echo "<tr>";
              echo '<td>'.$row->waktu.'</td>';
              echo "<td>".$row->no_registrasi."</td>";     
              echo "<td>".$row->no_rm."</td>";
              echo "<td>".$row->username."</td>";
              echo "<td>".$row->nama_pemilik."</td>";
              echo "<td>".$row->nama_hewan."</td>";
              echo '<td>'; 

                echo '<a href="linktoforminap?id='.$row->id.'">Tambah</a> | <a href="#">Selesai</a>';

              echo'</td>';
              echo"</tr>";$no++;
              }            
            ?>
          </tbody>
        </table>

这是我的模特

function daftar_inap_aktif()
    {
        $this->db->select('*');
        $this->db->select_max('waktu');
        $this->db->from('inputrminap');
        $this->db->group_by('no_registrasi');
        $this->db->order_by('waktu', 'DESC');
        $query = $this->db->get();
        return $query->result();
    }

这是我的控制器

function daftar_inap()
    {
        $data['daftar_inap_aktif'] = $this->rekammedis_model->daftar_inap_aktif();
        $this->load->view('daftar_inap_view', $data);
    }

3 个答案:

答案 0 :(得分:1)

我不确定您要完成什么,您的意思是删除该特定会话的那一行或永久删除该行,直到管理员再次显示该行。 让我试一试。

**暂时删除它(隐藏)..在这种情况下我会做什么:

您的观看代码:

<a href="<?= base_url().'some_controller/some_method/'.$id; ?>">Selesai</a>';
// Considering that you have base url setup and you have id of that row.

然后在Controller:

Public function some_method(){
$id = $this->uri->segment(3);
$this->some_model->hide_rows_with_id($id);
redirect('url_for_that_view');
}

最后模特:

function hide_rows_with_id($id)
    {
        $this->db->select('*');
        $this->db->select_max('waktu');
        $this->db->from('inputrminap');
        $this->db->where('id !=', $id); // Added this
        $this->db->group_by('no_registrasi');
        $this->db->order_by('waktu', 'DESC');
        $query = $this->db->get();
        return $query->result();
    }

这只是一个想法,如果“id”是一个数组,你可能想要为模型添加更多代码。

当然,如果从头开始重新打开页面,则会再次显示所有结果。要永久隐藏它,您可以创建一个名为“hidden”的新列,如果通过视图隐藏,则插入“1”,然后在模型中:

$this->db->where('hidden !=', 1);

答案 1 :(得分:0)

为您拥有的每一行添加唯一ID,并将其与您拥有的href链接

例如HTML:

<tr id="row-1">
        <td>xx</td>
        <td>xx</td>
        <td>xx</td>
        <td>xx</td>
        <td>xx</td>
        <td>xx</td>
        <td><a href="#" class="del_row" data-row-id="1">Delete</a></td>
</tr>

然后在你的javascript代码中添加如下内容:

$('.del_row').on('click', function (e) {
        e.preventDefault();
        var $rowId = $(this).data('row-id');
        $('#row-'+$rowId).remove();
});

答案 2 :(得分:0)

以便 保留额外的列调用status。当其有效时将其设置为0,并将其设置为1

因此,在您加载数据的查询中,您必须添加新的where子句。

WHERE status=0
  

注意:status列设置为int或boolen。