Php Ajax删除功能不工作

Php Ajax删除功能不工作,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我试图使用jqueryajax函数删除MySQL数据库中的一行。 当我点击posts“delete post”链接时,我希望它触发一个onClick事件,该事件将运行delete row函数 这是我目前的代码: 首先显示带有链接的帖子以删除每个帖子 foreach($postarray AS $value){ echo '<div class="item">'.$value['post_title'].' , <a href="#" class="delete_link" v

我试图使用jqueryajax函数删除MySQL数据库中的一行。 当我点击posts“delete post”链接时,我希望它触发一个
onClick
事件,该事件将运行delete row函数

这是我目前的代码:

首先显示带有链接的帖子以删除每个帖子

foreach($postarray AS $value){
echo '<div class="item">'.$value['post_title'].'  , <a href="#" class="delete_link" value="'. $value['post_id'] .'">Delete Post</a></div>';

}
以及
delete.php
代码:

//Start the session
session_start();
require_once('func/auth.class.php');
require_once('func/functions.php');
require_once('func/db.class.php');

// Check if user is logged in
if(!$_SESSION['is_admin'] || empty($_POST['id'])){
    header("Location: index.php");
}

$post_id = $_POST['id'];
delete_post($post_id);
以及
delete\u post()
函数:

function delete_post($post_id){
        global $dbh;

        $stmt = $dbh->prepare("DELETE FROM mjbox_posts WHERE post_id = ?");
        $stmt->bindValue(1, $post_id, PDO::PARAM_INT);
        $stmt->execute();

        if($stmt->rowCount() != 0){
            return TRUE;
        }else{
            return FALSE;
        }
    }

目前这种方法没有从数据库中删除帖子,我也不知道为什么。

正如jcho360在一篇评论中提到的,当绑定到click事件时,css类中有一个错误

一旦你解决了这个问题,它仍然无法工作。当触发click事件时,您正在声明一个删除帖子的函数,但您没有调用它。一种修复方法是将其更改为以下内容:

$(document).ready(function(){
    $(".delete_link").click(function(){
        var id = $(this).attr("value");

        $.ajax({
            type: "POST",
            url: "delete_post.php",
            data: {id: id},
            success: function(data){
                alert("Post deleted");
            }
        });
    });
});
这样,您实际上是在触发click事件时发出请求

此外,我刚刚注意到,在ajax调用中,您请求“delete_post.php”,但您提到您的php文件名为delete.php。这也需要解决


您可以使用浏览器中的检查器查看单击链接时发生的情况。它有提出请求吗?id参数设置是否正确?等等。

我没有看到类
“delete_post”
@jcho360 ya,我只看到“delete_link”类我的坏,在简化堆栈时忘了更改。你的JavaScript似乎没有调用
delete post()
。你的ajax调用的是“delete_post.php”,但你说文件是“delete.php”?
$(document).ready(function(){
    $(".delete_link").click(function(){
        var id = $(this).attr("value");

        $.ajax({
            type: "POST",
            url: "delete_post.php",
            data: {id: id},
            success: function(data){
                alert("Post deleted");
            }
        });
    });
});