0

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

現在、このメソッドはデータベースから投稿を削除していません。その理由はわかりません。

4

1 に答える 1