Bootstrap模式显示一秒钟然后消失
所以基本上我创建一个收件箱,从我的数据库加载数据。但我无法触发我的模式,我已经搜索,但没有任何符合我的问题。要触发的按钮位于<form method="post">
之内,因为我有一个隐藏的input
来检查被点击的行的ID。
顺便说一句,我的按钮,将触发模式也将执行两(2)mysqli查询。 这里是我的代码:
Bootstrap模式显示一秒钟然后消失
<form method="post">
<input type="hidden" name="key" value="'.$value->id.'">
<button data-toggle="modal" data-target="#myModal" title="View" class="btn btn-primary btn-xs" name="inbox_view">
<span class="glyphicon glyphicon-list"></span></button>
<button title="Trash" class="btn btn-danger btn-xs" name="inbox_del">
<span class="glyphicon glyphicon-trash"></span></button>
</form>
执行我的查询代码:
if(isset($_POST['inbox_view'])){
$id = filter($_POST['key']);
$type = '1';
$stmt = $dbcon->query("SELECT * FROM messages WHERE id='$id' AND type='1'") or die(mysqli_error());
$stmt2 = $dbcon->prepare("UPDATE messages SET seen='0' WHERE id=?") or die(mysqli_error());
$stmt2->bind_param('s',$id);
$stmt2->execute();
while($row = mysqli_fetch_array($stmt)){
$sender=$row['sender'];
$msg=$row['msg'];
$mdate=$row['mdate'];
}
}
模态:
<div class="modal fade-in" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel"><?php echo $value->sender; ?></h4>
</div>
<div class="modal-body">
<!-- Description-->
<div class="row">
<div class="col-md-12">
<p class="wrap"><?php echo $value->msg?></p>
</div>
</div>
<!-- End Description-->
</div>
<div class="modal-footer">
Received: <?php echo $value->mdate ?>
</div>
</div>
</div>
</div>
我到底做错了什么?我需要做些什么来完成这项工作?
PS:更新查询是检查邮件是否被读取
未读邮件=大胆
读的邮件=正常
您的浏览器提交按钮的点击的形式。这就是为什么它似乎是模式关闭。事实上,在表单发送后,您会看到一个新的(但相同的)页面。您将需要创建一个XHR请求来提交数据,而无需导航。
请参阅https://api.jquery.com/jquery.post/了解更多详情。
我不熟悉AJAX tbh,但是你能否提供给我一个关于我如何做到这一点的指示? – ronstoppable
AJAX仅意味着请求是异步完成的(与您的文档请求有关)。简单来说:请求X,但保留当前页面。我认为在jquery.com上的例子应该提供你需要的一切:https://api.jquery.com/jquery.post/#example-7 –
我真的不知道我将如何使用AJAX做到这一点,但感谢尽量减少回答我的问题的时间,我正试图分析这个例子真的想要做什么。 – ronstoppable
Bootstrap不关心你的后端。提供JS会更合适。我的猜测是在检索XHR响应后意外关闭了模式,或者根本不使用XHR,并且模式不会关闭,但浏览器正在发送普通的POST请求,这就是页面重新加载的原因。 –
我不熟悉bootstrap。但我错过了一些东西。你在哪里发送表格?我期望或者输入提交或JavaScript函数,听按钮点击或什么,然后触发该帖子 – Gerard
@Gerard你是什么意思“我在哪里发送表单?”我使用'