2017-08-11 98 views
0

所以基本上我創建一個收件箱,從我的數據庫加載數據。但我無法觸發我的模式,我已經搜索,但沒有任何符合我的問題。要觸發的按鈕位於<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

回答

1

您的瀏覽器提交按鈕的點擊的形式。這就是爲什麼它似乎是模式關閉。事實上,在表單發送後,您會看到一個新的(但相同的)頁面。您將需要創建一個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

相關問題