2016-07-05 38 views
0

我正在處理一個項目,我想在登錄到儀表板時向用戶顯示通知。該通知被傳遞到視圖,並顯示如下:在關閉PHP視圖中的警報時從SQL數據庫中刪除

   <div class="box-body"> 
       <?php foreach ($notifications as $notification) {?> 
         <div class="alert alert-danger" style="padding: 0px; margin-bottom: 10px;"> 
          <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 
          <strong><?php echo $notification->getNotificationTitle();?></strong> 
          <?php echo $notification->getNotificationDescription();?> 

         </div> 
       <?php }?> 
     </div> 

我試圖做到的是找到一種方法,其中,通知然後可以從數據庫中,如果警報被駁回刪除。我正在使用codeigniter和一個MySQL數據庫。

+2

你需要JS代碼來檢測解僱,然後發送一個Ajax請求到服務器,告訴它刪除相關的記錄。 PHP本身不能做到這一點,因爲它純粹是服務器端的東西,並且根本無法檢測到你在客戶端做了什麼。 –

回答

0

您可以使用兩個按鈕製作自己的自定義彈出窗口。我們稱他們爲批准和解僱。通過使用AJAX,您可以請求使用數據庫中的ID刪除記錄。您在foreach循環中顯示一個刪除錨點,爲其提供該記錄的標識。比方說:

<a id='record_here_goes_the_id' class='record_delete_btn'> 

而且重要的是點擊您顯示彈出式窗口,也得到你點擊相同的按鈕的ID,是這樣的:

$('.record_delete_btn').on('click', function(){ 
 
    var id = $(this).attr('id'); 
 
    id = id.replace('record_', '');//and now you have the id of the record you want to delete, just put in somewhere to get it for your AJAX request 
 
});

可以把id放在隱藏的輸入或其他隱藏的元素中。正是基於對通過你上面剛剛id和做你的AJAX請求:

$('#dismiss').on('click', function(e){ 
 
    e.preventDefault(); 
 
    //here goes your $.ajax request 
 
}); 
 
$('#approve').on('click', function(e){ 
 
    e.preventDefault(); 
 
    //here you hide the popup and do nothing, ex: $('.popup').hide(); 
 
});
<div class='popup'> 
 
    <p>What are you going to do?</p> 
 
    <a id='dismiss'>Dismiss</a> 
 
    <a id='approve'>Approve</a> 
 
</div>

你讓一個AJAX請求到PHP文件中,您將刪除解僱按鈕的點擊記錄。 這樣的事情應該做。當然,你將不得不使用CSS來設計彈出窗口和其他所有內容。並在頁面加載隱藏彈出。