我想制作一种警报系统,在用户屏幕上弹出警报,但我有一个主要问题,我无法弄清楚如何彻底删除该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");
?>
答案 0 :(得分:1)
您可以使用$(this).attr("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;
}