0

Hello friends!
I want the script when user clicks the Delete botton to delete that post, a confirm message appears and ask if the user is sure to delete that post or not, if the user clicks the cancel button, nothing happen but if clicks the ok button, then the script delete that post.
this is the main code:

<?php
include('connection.php');
try {
    $sql = "SELECT ID, Title, Author, Content FROM Posts";
    $result = $conn->query($sql);
    echo "<h4>LOGGED IN AS: " . $_SESSION["Username"] . "</h4>";
    echo "<p id='err_msg'></p>";
    echo "<table cellspacing='0' cellpadding='20' border='1px solid black' border-collapse='collapse'>";
    echo "<tr><th> POST ID </th><th> POST TITLE </th><th> POST AUTHOR </th><th> ACTION </th></tr>";
    foreach($result as $row) {
        echo "<tr class='tr'><td>" . $row['ID'] . "</td><td> <a href='single-post-page.php?post=" . $row['ID'] . "'>" . $row['Title'] . "</a> </td><td>" . $row['Author'] . "</td><td> <a id='".$row['ID']."' class='btn_dlt' href='#'> delete </a> <br> <a href='edit-page.php?post=" . $row['ID'] . "'>Edit</a></td></tr>";
    }
    echo "</table>";
} catch(PDOException $e) {
    echo "Query error:".$sql . "<br>" . $e->getMessage();
}
$conn = null;
?>



<html>
<head>
<title>admin</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
    $(".btn_dlt").click(function(){
        var btn_dlt = $(this); 
        $.ajax({
            type: "POST",
            url: "./delete-action.php", 
            data: { id: btn_dlt.attr("id") } 
        }).done(function( msg ) { 
            alert(msg);
            if(msg == "Success"){  
                btn_dlt.closest('.tr').remove();
            }else{
                $('#err_msg').html(msg);  err_msg field
            }
        });
    });
});
</script>


<style>
a {
#text-decoration:none;
color:black;
}

h4 {
margin-left: 500px;
}

table {
background:#f3faf1;
}
</style>
</head>
<body>
<hr>
<a href='writing-post.php'>Write new post</a><br><br>
<a href='user-view-page.php'>Log out</a>
</body>
</html>

And the delete-action.php file:

<?php
    include('connection.php');
    try {

        $id=$_POST['id'];
        $sql = "DELETE FROM Posts WHERE ID = '$id'";
        $conn->exec($sql);
        echo "Success"; // the word here must be same as ajax comparism
    } catch(PDOException $e) {
        echo "Query error:".$sql . "<br>" . $e->getMessage();
    }
    $conn = null;
?>

I have tried a lot to find the way how to create the dialog message but i still didn't find how to do that exactly..... I don't like Javascript at all :|
Any help is welcome.

Edited by Niloofar24

2
Contributors
2
Replies
15
Views
2 Years
Discussion Span
Last Post by Niloofar24
1

The confirmation box is quite simple:

$(".btn_dlt").click(function(){

        if ( ! confirm('Are you sure you want to delete this?') ) {
            return;
        }

        var btn_dlt = $(this); 
        $.ajax({
            type: "POST",
            url: "./delete-action.php", 
            data: { id: btn_dlt.attr("id") } 
        }).done(function( msg ) { 
            alert(msg);
            if(msg == "Success"){  
                btn_dlt.closest('.tr').remove();
            }else{
                $('#err_msg').html(msg);  err_msg field
            }
        });
    });
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.