2010-06-06 7 views
1

J'ai actuellement un système de messagerie. Je cherche à faire en sorte que lorsqu'un utilisateur reçoit un nouveau message, il reçoit une alerte. Un popup peut-être? Comme une boîte de message disant "vous avez un nouveau message".Nouveau message popup

Comment pourrais-je y parvenir? Merci

Répondre

2

Vous ne pouvez pas vraiment faire cela en php, car l'utilisation normale de php n'implique aucune interaction directe de l'utilisateur. Ce que vous devez faire est d'implémenter le code d'interaction de l'utilisateur, par exemple javascript, et d'interroger le serveur hébergeant le php (en utilisant AJAX ou similaire), pour voir si un popup devrait être affiché ou non.

0

Ceci n'est pas seulement un problème de php. Vous devez faire une table de base de données comme ceci:

messageID 
contents 
... 
popuped 
userID 

Ensuite, faire une page qui obtient le nombre de messages qui ne sont pas popuped déjà:

SELECT COUNT(*) AS nr FROM messages WHERE userID = :userID AND popuped = 0 

Et après cet ensemble popuped à 1:

UPDATE messages SET popuped = 1 WHERE userID = :userID 

Et d'imprimer le champ nr. Ensuite, pour chaque page de votre site, vous devez effectuer une requête ajax planifiée (par exemple toutes les 20 secondes) qui a chargé cette page. Si le résultat est supérieur à zéro, vous devez montrer que l'utilisateur a des messages.

Pour la demande ajax un coup d'oeil par exemple au Mootools framework javascript (ou jQuery, Prototype, etc.)

0

Vous cherchez un message « en direct », comme dans une alerte apparaît alors que l'utilisateur est faire d'autres choses? Ou cherchez-vous un message "statique", comme dans une alerte qui s'affiche lorsque l'utilisateur ouvre une page? La méthode statique peut être réalisée avec PHP côté serveur. La méthode en direct devra utiliser des techniques côté client. Je recommande d'utiliser jQuery et jGrowl et quelque chose comme jQuery Timers pour les méthodes en direct. Essayez cette question SO sur javascript timers here