使用jQuery从数据库中删除记录

时间:2016-08-04 13:48:40

标签: php mysql ajax pdo

我想在此表中添加删除按钮,以从数据库中删除查询。我在这里有Ajax和PHP代码:

<?php
        require_once 'dbconfig.php';

        $stmt = $pdo->prepare("SELECT * FROM test");
        $stmt->execute();
  while($row=$stmt->fetch(PDO::FETCH_ASSOC))
  {
   ?>
   <tr>
   <td><?php echo $row['id']; ?></td>
   <td><?php echo $row['server']; ?></td>
   <td><?php echo $row['reference']; ?></td>
   <td align="center"><a id="<?php echo $row['id']; ?>" class="delete-link" href="#" title="Delete">
   <img src="images/delete.png" width="20px" />
            </a></td>
   </tr>
   <?php
  }
  ?>

ajax:

$(document).ready(function(){

 /* Data Delete Starts Here */
 $(".delete-link").click(function()
 {
  var id = $(this).attr("id");
  var del_id = id;
  var parent = $(this).parent("td").parent("tr");
  if(confirm('Sure to Delete ID no = ' +del_id))
  {
   $.post('delete.php', {'del_id':del_id}, function(data)
   {
    parent.fadeOut('slow');
   });
  }
  return false;
 });
 /* Data Delete Ends Here */

});

delete.php:

<?php
include_once 'dbconfig.php';

if($_POST['del_id'])
{
 $id = $_POST['del_id'];
 $stmt=$db_con->prepare("DELETE FROM test WHERE id=:id");
 $stmt->bindParam(':id', $id);
 $stmt->execute();
}
?>

所选行似乎没有在数据库中删除...我也没有错误。

1 个答案:

答案 0 :(得分:0)

您传输的数据不正确。请试试这个

$(document).ready(function()
{
    $('table#delTable td a.delete').click(function()
    {
        if (confirm("Are you sure you want to delete this row?"))
        {
            var id = $(this).parent().parent().attr('id');
            var data = 'id=' + id ;
            var parent = $(this).parent().parent();

            $.ajax(
            {
                   type: "POST",
                   url: "view.php",
                   data: {id:id},
                   cache: false,

                   success: function()
                   {
                    parent.fadeOut('slow', function() {$(this).remove();});
                   }
             });
        }
    });

});