2014-02-05 60 views
0

我在Codeigniter框架中使用此代碼,以下代碼從數據庫中刪除記錄,但表格行未刪除或淡出......請檢查代碼,並告訴我,如何爲了解決這個問題..jquery從數據庫中刪除記錄,但表格行不淡出

HTML代碼:

<table id="tbl1"> 
<tr> 
     <td><a href="<?php echo site_url(); ?>admin/delete/<?php echo $get->id; ?>" class="deleteLink">Delete</a></td> 
<tr> 
</table> 

jQuery代碼:

$(document).ready(function(){ 
    $(".deleteLink").click(function(e){ 
      $this = $(this); 
      e.preventDefault(); 
      var url = $(this).attr("href"); 
      $.get(url, function(r){ 
       if(r.success){ 
        $this.closest("tr").remove(); 
       } 
      }); 
     }); 
}); 

控制器代碼:

public function delete($id){ 

     if (!$id) { 
      return FALSE; 
     } 

     $this->db->where($this->_primary_key, $id); 
     $this->db->limit(1); 
     $delete = $this->db->delete($this->_table_name); 
      if ($delete) return json_encode(array("success" => true)); 
} 
+0

如果成功,你從控制器返回什麼? – ArVan

+0

檢查控制器代碼,json_encode –

+0

所以在添加成功響應後,它仍然不起作用? – ArVan

回答

3

首先,你的控制器並沒有真正恢復任何數據,因爲AJAX,對不對?一個解決辦法是:

public function delete($id) { 

    $result = array('success' => FALSE, 'error' => ''); 

    if (!$id) { 
     echo json_encode($result); 
    } 

    $this->db->where($this->_primary_key, $id); 
    $this->db->limit(1); 

    // if row was deleted successfully, result in success 
    if($this->db->delete($this->_table_name) !== FALSE) { 
     $result['success'] = TRUE; 

    // otherwise result in error! 
    }else{ 
     $result['success'] = FALSE; 
     $result['error'] = 'Row could not be deleted!'; 
    } 

    echo json_encode($result); 

} 

然後,您將有一個JSON對象作爲Ajax響應,你可以輕鬆地訪問到您的GET回調:

$.get(url, function(r){ 
    if(r.success){ 
     $this.closest("tr").remove(); 
    }else{ 
     alert('An error occured: ' + r.error); 
    } 
}, 'json'); 

請注意'}, 'json');一部分 - 告訴你GET()函數,你的結果是JSON格式。

+0

仍然記錄從數據庫中刪除,沒有警報,沒有淡出 –

+1

你的迴應的控制檯輸出是什麼? 'console.log(r)' –

+0

我檢查了螢火蟲,它的顯示錯誤'呃哦!',但記錄已刪除 –

相關問題