PHP

Système de notification

Non Résolu

Bonjour à tous, je suis entrain de suivre ce tuto https://www.youtube.com/watch?v=eL7c1TbqUnc mais dans mon site a moi j'ai un espace membre, mon problème c'est quand je clique pour voir la notification j'ai la notification marqué 1 en rouge qui disparait sur tout les autres compte, or je veux juste qu'elle disparait sur la personne qui a vue la notification, je ne sais pas si j'ai bien expliqué. du coup pour la session on doit la faire sur le fichier JS ou PHP ? Je vous remercie de votre compréhension et merci d'avance pour votre aide.

942 vues
08 février 2021 à 13:05
Cette pub permet au site de vivre ...

14 commentaires

Re @dev,


Pas de soucis 😉

Tu as télécharger le code ou tu l'as reproduit grâce à la vidéo ? 🤔

désolé, je n'avais pas trouver comment on insert les balises mais merci, alors voici le code php:


session_start();
if(isset($_SESSION['id']))
{ 
    $sessionid=$_SESSION['id'];
    //'SELECT users.*, addon_comment.* FROM users INNER JOIN addon_comment ON (users.id = addon_comment.users_id)'
    $sql_user = 'SELECT * FROM users WHERE id = :id';
    $requser = $pdo->prepare($sql_user);
    $requser->execute(
        [
            'id' => $_SESSION['id']
        ]
    );
    $user = $requser->fetch();
    
    if(isset($_POST['view']) && !empty($_SESSION['id']))
    {

    if($_POST["view"] != ''){
        $update = 'UPDATE alpha_addon SET notif_views = 1 WHERE notif_views = 0';
        $req_update = $pdo->prepare($update);
        $req_update->execute();
      }
        $query = ("SELECT alpha_addon.id, alpha_addon.simulateur, alpha_addon.addon, alpha_addon.registre_keymembre, alpha_addon.title_file, alpha_addon.description_addon, alpha_addon.date_publish, alpha_addon.profile_addon, users.pseudo, users.avatar FROM users, alpha_addon WHERE alpha_addon.id_users = users.id ORDER BY alpha_addon.id DESC");
        $result = $pdo->prepare($query);
        $result->execute();

        $output = '';
        if($result->rowCount() > 0){
            while($data = $result->fetch())
                //$pseudo = $data['pseudo'];
            {
               $output .= '
                  <div class="media media_notif">
                  <a href="#" title="Voir le profil">
                        <figure class="media-left"><p class="image"><img class="image_notif" src="../users_account/alphamembre/avatar/'.$data['avatar'].'" data-demo-src="../../users_account/alphamembre/avatar/'.$data['avatar'].'" alt=""></p><i class="fas fa-upload" id="upload_notif"></i></figure>
                    </a>
                        <div class="media-content">
                          <span class="span_notif"><a href="../alpha_addon/addons/addon-view/addon.php?id='.$data['id'].'" target="_blank" title="voir l\'addon" class="post_notif"><strong style="color:#dedede;">'.$data['pseudo'].' a poster un addon sur </strong><br> AlphaAddon</a></span><br>
                            <span class="time time_notif">• '.AffDate($data['date_publish']).' •</span>
                        </div>
                    </div>
                  '; 
            }
    } 

    $sql_nbr = $pdo->prepare("SELECT * FROM alpha_addon WHERE notif_views=0");
    $sql_nbr->execute();
    $count = $sql_nbr->rowCount();

    $data = array(
       'sessionid' => $sessionid,
       'notification' => $output,
       'unseen_notification'  => $count
    );

    echo json_encode($data);   
    }
}

Bonjour @dev,


Lorsque tu envois un code, tu dois utiliser les balises </> afin que ce dernier soit plus lisible (cf. ce topic) 😉

De plus, peux tu nous faire parvenir ton fichier PHP associé au système de notification 🤔

function load_unseen_notification(view = ''{
$.ajax({
 url:"./server/fetch.php",
 method:"POST",
 data:{view:view},
 dataType:"json",
 success:function(data){
  $('.nav-drop-body').html(data.notification);
    if(data.unseen_notification > 0){
    $('.count').html(data.unseen_notification);
    }
  }
 });
}
   
load_unseen_notification();
// load new notifications
$(document).on('click', '.drop-notif', function(){
 $('.count').html('');
 load_unseen_notification('yes');
});


A mon avis on doit modifier le code ici, mais aucun idée comment faire 😕😕


Cette pub permet au site de vivre ...
1
2