簡體   English   中英

AJAX / jQuery不會從MySQL表中刪除行

[英]AJAX/Jquery not deleting row from MySQL table

我正在嘗試使用AJAX和jQuery從表中刪除記錄。 該行將根據需要從頁面視圖中刪除,而不是從表中刪除。

我正在使用以下文件和相關部分:

詢問

$result = mysql_query("SELECT id,name FROM myTable");

查詢結果:

while($row = mysql_fetch_array($result))
{
$id1=$row['id'];
$dataname=$row['name'];
?>
<div class="show">
<span class="name"><?php echo $dataname;  ?></span><br><span class="name"><?php echo $id1;  ?></span>
<span class="action"><a href="#" id="<?php echo $id1; ?>" class="delete" title="Delete">Delete</a></span>
</div>
<?php
}
?>

AJAX腳本

<script type="text/javascript">
$(function() {
$(".delete").click(function(){
var element = $(this);
var del_id = element.attr("id");
var info = 'id=' + del_id;
if(confirm("Are you sure you want to delete this?"))
{
 $.ajax({
   type: "POST",
   url: "delete.php",
   data: info,
   success: function(){
 }
});
  $(this).parents(".show").animate({ backgroundColor: "#003" }, "slow")
  .animate({ opacity: "hide" }, "slow");
 }
return false;
});
});
</script>

delete.php

<?php
include('db.php');
if($_POST['id'])
{
$id=mysql_real_escape_string($_POST['id']);
$delete = "DELETE FROM `testdb` WHERE id = '$id1' ";
mysql_query($delete);
}
?>
$id=mysql_real_escape_string($_POST['id']);
$delete = "DELETE FROM `testdb` WHERE id = '$id1' ";

您在delete語句中使用的是$id1 ,應為$id

$delete = "DELETE FROM `testdb` WHERE id = '$id'";

注意:您的代碼容易受到sql注入的攻擊,請開始將preparedStatement與mysqli_PDO一起使用

更新:使用PDO進行刪除操作

error_reporting(E_ALL);
ini_set('display_errors', '1');
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', '****', '****');
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$id = $_POST['id'] ;
$sql = "DELETE FROM testdb WHERE id = :id "; 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(':id', $id, PDO::PARAM_INT); 
$stmt->execute(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM