2016-01-22 37 views
1

如何根據此代碼使用AJAX從表中刪除一行?AJAX刪除選中PHP id的表中的行

這裏是PHP代碼我的工作:

foreach ($results as $result) { 
    echo "<tr><td>".$result['first_name']."</td><td>".$result['last_name']."</td><td><button class=\"btn btn-sm btn-danger delete_class\" id=\"".$result['id']."\" >DELETE</button></td></tr>"; 
} 

正如你所看到的,按鈕與它配對的ID。

這裏是我的jQuery/AJAX代碼從數據庫中刪除文件:

<script> 
     var $tr = $(this).attr('parentElement'); 

     $('.delete_class').click(function(){ 
      var del_id= $('.delete_class').attr('id'); 
      $.ajax({ 
       url:"delete_page.php?delete_id="+del_id, 
       cache:false, 
       success:function(result){ 
        $tr.find('td').fadeOut(1000,function(){ 
         $tr.remove(); 
        }); 
       } 
      }); 
     }); 
</script> 

還有一個PHP文件進入數據庫,並刪除數據,工作正常。

在上面的javascript代碼中,設置在頂部「$ tr」的變量是說'parentAttribute'是「td」而不是「tr」,那麼我將如何提高兩個父屬性?

什麼可以改變我的「成功:函數(結果){}」,以使該行立即消失,因爲,

$tr.find('td').fadeOut(1000,function(){ 
     $tr.remove(); 
} 

這個代碼^是行不通的。

回答

2

更改當前jquery代碼,如下所示:

<script>  
     $('.delete_class').click(function(){ 
      var tr = $(this).closest('tr'), 
       del_id = $(this).attr('id'); 

      $.ajax({ 
       url: "delete_page.php?delete_id="+ del_id, 
       cache: false, 
       success:function(result){ 
        tr.fadeOut(1000, function(){ 
         $(this).remove(); 
        }); 
       } 
      }); 
     }); 
</script> 

closest方法返回第所選元素的祖先。 https://api.jquery.com/closest/

+0

這沒有把戲! – NoReceipt4Panda

0

嘗試

tr = $(this).parent(); 

有沒有所謂的「parentElement」屬性,這就是爲什麼它不工作。

參考:Jquery Docs

我還改變函數行:

var del_id = $(this).attr('id');