Bonjour a tous,

Mon problème est le suivant :
Sur mon site, les utilisateurs ont la possibilité de s'envoyer des mp. Très bien, dans le menu, il y a l'onglet "Messages" et si l'utilisateur reçoit un message, un petit 1 apparaît a coté du lien. Jusque la tout va bien.

Vous allez surement me demander que vient faire ce problème sur le forum JavaScript ^^ J'y viens.
Si l'utilisateur reçoit un message, il ne verra le "1" qu'une fois qu'il aura rafraichit la page. et là est mon souci.
Je souhaiterais que cette valeur soit rafrachie toutes les 5 ou 10 secondes.
Comment faire ? (Je ne me débrouille pas en JavaScript)

Merci de vos prochaines réponses :)
Cordialement,
EnObliO

14 réponses


Bonjour,

Il faut que tu créés une méthode Ajax qui va chercher les données dans ta bdd.
Après il te faut lancer cette méthode à intervalle régulier. Pour cela tu peux faire un truc du genre :

function checkNotifications(){
    getNotifications();
    setTimeout(checkNotifications, 60000);
}

Ceci te permettra de lancer la fonction getNotifications() toutes les minutes. Il faut bien sur que tu créés ta méthode Ajax avant ;)

Bon courage

EnObliO
Auteur

Bonjour, superbe merci pour ta réponse Axis, mais une chose coince ^^ je ne maitrise absolument pas JQuery ni Ajax ni JS :/
De plus, la donné que je souhaite actualiser est un ''li'' c'est différent ou non ?

Salut,

Alors juste pour info, tu as des tutoriels sur ce site (c'est un peu son "fond de commerce" si je puis dire). Donc tu cherche un peu par toi-même (un indice : il y a 2 tutos sur Ajax :o) ..
Ce n'est pas méchant, mais avant de dire "je ne maîtrise pas", "je ne connais pas", "je ne sais pas faire", as-tu au moins essayé ?

EnObliO
Auteur

Bonjour betaWeb,

Je me suis déjâ renseigné sur le sujet.
J'ai regardé sur internet, j'ai essayé de faire des scripts mais ça n'a rien donné.
Je suis donc venu poster ici

Tu t'es renseigné oui, mais as-tu exprimenté ? Et as-tu pris le temps de regarder les tutos que @Grafikart a mis en ligne ?

EnObliO
Auteur

J'ai regardé des vidéos hier soir de 18h a 21h et j'ai mis en pratique, sauf que je n'arrive pas au rendu souhaité :(

Tu cherche à faire quoi exactement ?

3h de vidéos ne suffise pas à maitriser le minimum ! si les tutos de @Grafikart ne te suffisent pas, je t'invite fortement à jeter un oeil sur les apis de jquery. Une doc officiel pour te documenter tester et surtout comprendre les scripts

EnObliO
Auteur

Je cherche simplement a actualiser une liste ordonée (li) toutes les 30 secondes
Je suis en train de regarder des docs Kiv

EnObliO
Auteur

une ldée ?

EnObliO
Auteur

non personne ?

Commences par donner ce que tu as déjà fait ;)

    recupMessages();
    function recupMessages(){
        $.post('recup.php', function(data){
            $('.afficher').html(data);
        })
    }

    setInterval(recupMessages,1000);

recup.php contient le script php qui vas recupérer le contenue de la bdd
.afficher est le nom de la div ou il doit ajouter le contenue voila voila :)

PS: pour info je connais rien en js, jquery, ajax... mais pourtant avec un peux de recherche tu fini par trouver :)

Allez je te donne aussi côter php c'est cadeau :

<?php
require_once 'config.php';
$message = array();

$require_message = $bdd->query('SELECT * FROM livecomment ORDER BY id DESC');

while($donner = $require_message->fetch()){
    $message[] = $donner;
}

foreach ($message as $messages) {
    echo '<p class="name_user">'.$messages['name'].'</p>';
    echo '<p>'.$messages['email'].'</p>';
    echo '<p>'.$messages['message'].'</p>';
}