Ajax删除功能不起作用

时间:2013-04-22 16:03:22

标签: php jquery mysql ajax

我正在尝试使用jQuery Ajax函数删除MySQL数据库中的一行。 当我点击帖子"删除帖子"链接我希望它触发一个onClick事件,它将运行删除行功能。

到目前为止,这是我的代码:

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

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

}

然后是Jquery:

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

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

});

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_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;
        }
    }

目前此方法不会删除数据库中的帖子,我无法解决原因。

1 个答案:

答案 0 :(得分:1)

正如评论中提到的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参数设置正确吗?等等。