Уведомления с php и javascript, есть ли кто-нибудь, чтобы помочь мне?

Уведомления с php и javascript, есть ли кто-нибудь, чтобы помочь мне?

Я следую учебному пособию о системе уведомлений PHp в реальном времени ( https://www.cloudways.com/blog/real-time-php-notification-system/ ) и делаю много, но мне нужна помощь для адаптации кода на мои нужды.

у меня есть меню, которое отлично работает, чтобы показать некоторые уведомления

 {amp}lt;!-- Nav Item - Notificacoes --{amp}gt; {amp}lt;li class="nav-item dropdown no-arrow mx-1"{amp}gt; {amp}lt;a class="nav-link dropdown-toggle dropdown-toggle-notif" href="#" id="alertsDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"{amp}gt; {amp}lt;!-- Contador - Notificacoes --{amp}gt; {amp}lt;span class="badge badge-danger badge-counter count"{amp}gt;{amp}lt;/span{amp}gt; {amp}lt;i class="fas fa-bell fa-fw"{amp}gt;{amp}lt;/i{amp}gt; {amp}lt;/a{amp}gt; {amp}lt;!-- Dropdown - Notificacoes --{amp}gt; {amp}lt;div class="dropdown-list dropdown-menu dropdown-menu-notif dropdown-menu-right shadow animated--grow-in" aria-labelledby="alertsDropdown"{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/li{amp}gt; 

у меня есть мой JS-код, который отвечает за принятие запроса и подготовку его к отображению в меню

 $(document).ready(function(){ function load_unseen_notification(view = '') { $.ajax({ url:"includes/fetch.php", method:"POST", data:{view:view}, dataType:"json", success:function(data) { $('.dropdown-menu-notif').html(data.notification); if(data.unseen_notification {amp}gt; 0) { $('.count').html(data.unseen_notification); } } }); } load_unseen_notification(); $(document).on('click', '.dropdown-toggle-notif', function(){ $('.count').html(''); load_unseen_notification('yes'); }); setInterval(function(){ load_unseen_notification(); }, 5000); }); . $(document).ready(function(){ function load_unseen_notification(view = '') { $.ajax({ url:"includes/fetch.php", method:"POST", data:{view:view}, dataType:"json", success:function(data) { $('.dropdown-menu-notif').html(data.notification); if(data.unseen_notification {amp}gt; 0) { $('.count').html(data.unseen_notification); } } }); } load_unseen_notification(); $(document).on('click', '.dropdown-toggle-notif', function(){ $('.count').html(''); load_unseen_notification('yes'); }); setInterval(function(){ load_unseen_notification(); }, 5000); }); 

и у меня есть файл fetch.php, который делает магию ..

 {amp}lt;?php include "db.php"; ?{amp}gt; {amp}lt;?php if(isset($_POST['view'])){ if($_POST["view"] != '') { $update_query = "UPDATE ocorrencias SET notif_status = 1 WHERE notif_status=0"; mysqli_query($connection, $update_query); } $query = "SELECT * FROM ocorrencias ORDER BY id_ocorrencias DESC LIMIT 5"; $result = mysqli_query($connection, $query); $output = ' {amp}lt;h6 class="dropdown-header"{amp}gt; Notificacoes Ocorencias {amp}lt;/h6{amp}gt; '; if(mysqli_num_rows($result) {amp}gt; 0) { while($row = mysqli_fetch_array($result)) { $output .= ' {amp}lt;a class="dropdown-item d-flex align-items-center" href="ocorrencias_abertas.php"{amp}gt; {amp}lt;div class="mr-3"{amp}gt; {amp}lt;div class="icon-circle bg-warning"{amp}gt; {amp}lt;i class="fas fa-exclamation-triangle text-white"{amp}gt;{amp}lt;/i{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;div{amp}gt; {amp}lt;div class="small text-gray-500"{amp}gt;'.$row["nome_municipe"].'{amp}lt;/div{amp}gt; {amp}lt;span class="font-weight-bold"{amp}gt;'.$row["descricao_ocorrencia"].'{amp}lt;/span{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/a{amp}gt; '; } } else{ $output .= ' {amp}lt;a class="dropdown-item text-center small text-gray-500" href="#"{amp}gt;Nenhuma Notificacao encontrada{amp}lt;/a{amp}gt;'; } $status_query = "SELECT * FROM ocorrencias WHERE notif_status=0"; $result_query = mysqli_query($connection, $status_query); $count = mysqli_num_rows($result_query); $data = array( 'notification' ={amp}gt; $output, 'unseen_notification' ={amp}gt; $count ); echo json_encode($data); } ?{amp}gt; 

Вот как работает моя система: когда новая запись вставляется в таблицу «вхождений» в уведомлении, она автоматически появляется на значке колокольчика, увеличивая нумерацию, вставленную в таблицу (управляется полем notif_status = 0). но при нажатии на значок всегда отображаются последние 5 записей, как показано выше. только исчезающий номер приращения дает нам ощущение, что уведомление было замечено, а файл JS обновляет поле notif_satus = 1.

Но этот процесс показа уведомлений статичен. мне нужна помощь, чтобы сделать его более динамичным, то есть иметь новое уведомление, помимо отображения числителя, представления в раскрывающемся меню только открытых случаев (notif_satus = 0) и только после нажатия кнопки, которое должно обновить поле и удалить из списка или оставить в виде простого текста и представить новое уведомление жирным шрифтом, чтобы отличать его от других.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector