Afficher une notification quand des événements se déclenche

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher une notification quand des événements se déclenche

Re: Afficher une notification quand des événements se déclen

par nico44530 » 26 nov. 2013, 19:14

Un membre se connecte, il peut choisir d'ouvrir ou de fermer la fenêtre qui affiche les notifications.
Elle peut rester ouverte ou fermer grâce à un cookie js.

Re: Afficher une notification quand des événements se déclen

par franckm » 26 nov. 2013, 18:23

Mais tu veux que la fenêtre s'affiche automatiquement à tous les utilisateurs dès qu'un fait un like par exemple ?

Ou la fenêtre doit s'afficher pour l'utilisateur actif qui a cliqué ?

Re: Afficher une notification quand des événements se déclen

par nico44530 » 26 nov. 2013, 18:08

Non, je ne sais pas par où commencer, j'ai pas encore de code fait.
Je me demandait comment faire.

Re: Afficher une notification quand des événements se déclen

par franckm » 26 nov. 2013, 17:58

Je comprends pas bien, tu as déjà fait une requête AJAX ???

Parce que si tu as une requête en AJAX ,tu as forcément codé le PHP !

Sinon mets ton code html/javascript en PJ que je vois mieux

Re: Afficher une notification quand des événements se déclen

par nico44530 » 26 nov. 2013, 17:31

Ok merci

J'ai déjà une DIV prévu, qui apparaît en haut fixée dès qu'on clique sur un bouton.
Dès que je clique sur ce bouton, j'appelle la fonction ajax qui récupère toutes les infos qui vienne de plusieurs tables à la fois :

- Table : `like` : Dès qu'un membre aime un post, on affiche une notif
- Table : `statut` : Dès qu'un membre poste, on affiche une notif
- Table : `users` : Dès qu'un membre s'inscrit, on affiche une notif
- Table : `ads` : Dès qu'un membre ajoute une publicité, on affiche une notif
etc...

Mais le fichier php, je ne sais pas comment le faire.

Re: Afficher une notification quand des événements se déclen

par franckm » 26 nov. 2013, 10:24

Peut-être commencer par mettre un événement sur chaque objet du DOM qui va doit faire ouvrir la DIV du type onclick="ouvreDiv()" ou onblur="ouvreDiv()"...

Ensuite, tu dois avoir dans ta page l'ID ou quelques chose comme ça de la personne pour afficher les bonnes infos. Une possibilité serait par exemple de le mettre dans un champs HIDDEN du type:
<input type="hidden" name="ID" value="65" id="takeID" />
Ou bien sûr le 65 est récupéré de façon dynamique suivant la personne connectée.

Ta DIV où tu veux afficher les infos, cachée par défaut.
<div id="DivInfos" style="display:none"></div>

Un fonction avec AJAX possible:
[javascript]
function ouvreDiv(){
var id = $('#takeID').val();
jQuery.ajax({
type: 'GET',
url: 'InfosDiv.php?ID='+id,
async:true,
dataType: 'text',
contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
beforeSend: function(xhr) {
xhr.overrideMimeType('text/html; charset=UTF-8');
},
success: function(data,textStatus){
$('#DivInfos').show();
$('#DivInfos').html(data);
},
error: function (xhr, ajaxOptions, thrownError){
jAlert("Erreur de traitement Ajax");
}
});
}
[/javascript]

Le fichier infosDiv.php récupère l'ID et va chercher les infos nécessaires dans la table et renvoie les valeurs. Si tu renvoies une seule valeur (un string, un nombre) un dataType 'text' doit suffire ( A la fin du fichier PHP tu fais un simple echo de la valeur à renvoyer.

Si tu dois ramener plusieurs infos et donc un tableau, il faudra encoder côté PHP en JSON (il suffit de prendre ton tableau PHP que tu souhaites renvoyer et faire json_encode($lTableau))_et côté AJAX utiliser un dataType 'json' pour décoder.

Afficher une notification quand des événements se déclenche

par nico44530 » 26 nov. 2013, 01:51

Bonjour,

J'aimerais afficher une notification visible par tout le monde dans un div, quand on poste n'importe quoi, quand un nouveau s'inscrit, quand on aime un post etc...
Du genre : membre s'est inscrit le ../../.... ou membre a commenté le ..... ou alors membre aime ..... etc...
Je vais bientôt louer un serveur dédié pour faire ça en websockets, mais pour l'instant j'aimerais recharger la div en ajax toutes les 5 minutes.

Merci d'avance ;)