单击div后,Jquery从数据库中删除数据

时间:2014-10-11 07:05:01

标签: javascript php jquery html css

我想制作一种警报系统,在用户屏幕上弹出警报,但我有一个主要问题,我无法弄清楚如何彻底删除该div,我知道我需要将它从数据库中删除,但这就是我无法做的事情,我似乎无法找到从数据库中获取div的ID以用于从数据库中删除的方法。 这是我的尝试。

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script>    
$(document).ready(function()
{

    $(".alert").draggable();    
    $(".alert").click(function()
    {           
        var test = $("#warning").val();
        alert(test);
        $(this).fadeOut("fast");

    }); 
}); 
</script>
<style>
#warning
{   
    width:150px;
    height:150px;
    border:1px solid red;
    background-color:rgb(230, 30, 30);
    border-radius:5px;
    padding:5px;    
}   
#notice
{   
    width:150px;
    height:150px;
    border:1px solid yellow;
    background-color:rgb(230, 80, 30);
    border-radius:5px;
    padding:5px;    
}   
#generic
{   
    width:150px;
    height:150px;
    border:1px solid grey;
    background-color:rgb(150, 150, 150);
    border-radius:5px;
    padding:5px;    
}
.blue
{   
    font-weight:bold;   
}   
</style>
<?php
function display_alerts($user_id)
{   
    $connect = mysqli_connect("localhost", "root", "asdfghjkl", "database");
    $query = mysqli_query($connect, "SELECT * FROM `alerts` WHERE `user` = '$user_id'");
    while($row = mysqli_fetch_assoc($query))
    {       
    ?>          
        <div id="<?php echo $row["style"]; ?>" value = "<?php echo $row["id"]; ?>" class="alert"><?php echo $row["message"]; ?></div>
        <?php       
    }       
}
display_alerts("10");
?>

2 个答案:

答案 0 :(得分:1)

您可以使用$(this).attr("id")

获取ID

然后你必须将此id传递给php页面以便删除。正如Ghost建议的那样,您可以使用表单或jQuery ajax来电。

答案 1 :(得分:1)

如果您想要$.ajax()路由,只需调用将处理该过程的PHP:

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

    var id = $(this).attr('value'); // where the id resides on the markup
    $.ajax({
        url: 'delete_alert.php',
        type: 'POST',
        dataType: 'JSON',
        data: {id : id},
        success: function(response) {
            alert(response.message);

        }
    });

    $(this).fadeOut("fast");
});

然后在你的PHP(delete_alert.php)中:

if(isset($_POST['id'])) {
    $message = '';
    $db = new mysqli("localhost", "root", "asdfghjkl", "database");
    $id = $db->real_escape_string($_POST['id']);
    $query = $db->query("DELETE FROM alerts WHERE id = '$id' ");
    if($query->affected_rows > 0) {
        $message = 'delete successful';
    } else {
        $message = 'delete failed';
    }

    echo json_encode(array('message' => $message));
    exit;
}