2013-07-03 222 views
0

使用ajax/jquery刪除mysql數據庫中的記錄時遇到問題。我遇到的問題是它不會從數據庫中刪除,而是從列表中刪除。我在這裏做錯了什麼?使用ajax通過ID刪除記錄

這裏是我的代碼:

jQuery(document).ready(function(){ 
    $(".deleteitem").click(function(){ 

    var parent = $(this).closest('li'); 
    var id = parent.attr('id'); 

    $.ajax({ 
     type: "POST", 
     data: "id=" +id, 
     URL: "delete.php", 
     success: function(msg){ 
     $('#'+id).remove(); 
     } 
    }); 
    }); 
}); 

我的PHP文件delete.php:

$con=mysqli_connect("localhost","user","pass","db"); 
// Check connection 
if (mysqli_connect_errno()) 
{ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } 

$id = $_POST['id']; 

if (isset($id)) { 
    $query = "DELETE FROM img_slider WHERE id = '$id'"; 
    mysqli_query($query) or die('Error, insert query failed'); 
} 

的HTML標記:

<li id='".$row['id']."'> 
<a href='#' class='deleteitem'><img src='../img/delete.png'></a> 
</li> 
+0

數據格式爲'data:{「id」:id}' – karthikr

+0

這是你的PHP代碼嗎?你在哪裏連接到數據庫? – 2013-07-03 01:18:06

+0

你應該看看delete.php是幹什麼的。你可以使用$ _REQUEST而不是$ _POST並且調用delete.php?id = ...並且看看會發生什麼。如果它的工作返回$ _POST並在ajax中調試你的參數 – bksi

回答

2

首先測試,以確保調用刪除文件用一個有效的id作品。下面的javascript應該可以正常工作。

<script type="text/javascript"> 
<!-- 
$(function() { 
    $('.deleteitem').click(function(e) { 
    e.preventDefault(); 
    var id = $(this).parent('li').attr('id'); 
    $.get('delete.php',{ id: id}).done(function(data) { 
     if(data=='Error, insert query failed') { 
      // dont delete from list 
      alert('Failed to delete '+id); 
     } else { 
      //delete from list 
      $('#'+id).remove(); 
      alert('Deleted '+id); 
     } 
    }); 
    }); 
}); 
//--> 
</script> 

編輯:更新腳本,以協助父母id處理。

你能說錯誤來自哪裏嗎?大多數現代瀏覽器應該爲您提供一些有關哪條線路或錯誤發生的部分的信息。

上面的腳本應該替換所有的javascript。

+0

我得到一個錯誤的上述JavaScript。 Delete.php處於正常工作狀態。 –

+0

編輯,以幫助basix語法錯誤,並幫助給你一些警報,以發生什麼 – elzaer

+0

錯誤似乎在:'alert('deleted +'id);' - 非常感謝您在這裏的時間。 –