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">&times;</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:更新查询是检查邮件是否被读取
未读邮件=大胆
读的邮件=正常

+1

Bootstrap不关心你的后端。提供JS会更合适。我的猜测是在检索XHR响应后意外关闭了模式,或者根本不使用XHR,并且模式不会关闭,但浏览器正在发送普通的POST请求,这就是页面重新加载的原因。 –

+0

我不熟悉bootstrap。但我错过了一些东西。你在哪里发送表格?我期望或者输入提交或JavaScript函数,听按钮点击或什么,然后触发该帖子 – Gerard

+0

@Gerard你是什么意思“我在哪里发送表单?”我使用'

>'获取'的值,然后将其用于我的选择查询。 – ronstoppable

您的浏览器提交按钮的点击的形式。这就是为什么它似乎是模式关闭。事实上,在表单发送后,您会看到一个新的(但相同的)页面。您将需要创建一个XHR请求来提交数据,而无需导航。

请参阅https://api.jquery.com/jquery.post/了解更多详情。

+0

我不熟悉AJAX tbh,但是你能否提供给我一个关于我如何做到这一点的指示? – ronstoppable

+0

AJAX仅意味着请求是异步完成的(与您的文档请求有关)。简单来说:请求X,但保留当前页面。我认为在jquery.com上的例子应该提供你需要的一切:https://api.jquery.com/jquery.post/#example-7 –

+0

我真的不知道我将如何使用AJAX做到这一点,但感谢尽量减少回答我的问题的时间,我正试图分析这个例子真的想要做什么。 – ronstoppable