11548 sujets

JavaScript, DOM et API Web HTML5

bonjour Smiley smile ,je viens vers vous en esperant trouver une solution a mon probleme.j'essaye d'optimiser un chat en intranet ,je veux actualiser le dernier message j'ai deja utilise load avec jquery a travers ajax ca marche mais pas comme je voulais , voici mon script apres avoir lancer une requette vers la bd



 <script type="text/javascript">

 var lastid = <?php echo $donnees['id']; ?>;

 
 
             $(document).ready(function(){  

      setInterval(function(){
 

        
    $.ajax({      
                  url: "chatzone_reponse.php",
                  data: "lastid="+lastid,
                  cache: false,
                  success:function(html){
                                         $("#seconda").append(html);
                                      
                             
                                          }
                                          
                                          });
                                                }, 1000);
                      
                      });
  
</script>

une partie du code de la page php:
 
                 $reponse = $bdd->query("SELECT id, pseudo, sex, message FROM salon WHERE ID > '" .$lastid. "' ORDER BY DATE ASC");

    while ($donnees = $reponse->fetch())
     {
          echo  $donnees['message'];


le probleme est que le script ne cesse de retourne le meme message plusieurs fois meme au changement de la bd Smiley decu ; je sais que c a cause du parametre dans le script jquery qui reste inchange. donc ma question est svp Smiley prie comment je peux retourner la nouvelle valeur lastid de la page php et l'introduire dans le script. je sais que c possible avec un retoure json mais pour un premier temps j'essaye d'eviter json je ne suis qu'un debutant merci a vous.. Smiley smile
Utilise un "flag" dans ta table de Chat.
Enfin, mets un champ "statut" que tu mets à 0 ou 1 ou 2 par exemple.

0 = non lu donc à afficher
1 = lu mais affiché
2 = archivé ou supprimé

Et à chaque appel du script PHP par AJAX, tu updates les messages en mettant le champ "statut" à 1 et tu fais un select uniquement sur les messages avec un "statut" à 0.
Enfin si je suis assez clair ...
vincentD83 a écrit :
Utilise un "flag" dans ta table de Chat.

Sauf qu'il y a UNE table côté client, et plusieurs clients. Donc si tu mets une valeur "1" à un enregistrement de la table, cet enregistrement ne sera plus retourné pour qui que ce soit. Ça me semble être une mauvaise idée...

vincentD83 a écrit :
je sais que c possible avec un retoure json mais pour un premier temps j'essaye d'eviter json je ne suis qu'un debutant merci a vous..

Un peu comme moi, je voudrais repeindre ma cuisine mais dans un premier temps je voudrais éviter les peintures glycérophtaliques car je suis débutant, et l'aquarelle me semble plus simple. Smiley smile

Plutôt que d'investir du temps dans des bidouilles, investissez du temps dans l'apprentissage des langages et technologies dont vous avez besoin. Faire des requêtes XHR (Ajax) sans JSON ou XML, c'est très vite limité.
merci pour vos reponses les amis Smiley smile , fvsch quelle technologie me conseil tu pour de tell application?java? Smiley rolleyes
a écrit :
Sauf qu'il y a UNE table côté client, et plusieurs clients.


Je me plaçais dans le cas où le chat serait utilisé pour uniquement 2 personnes. Enfin, que seules 2 personnes pouvaient s'échanger des messages. Mais comme tu le dis, cette solution a ses limites.

Sinon, au success de ton Ajax, pourquoi ne pas faire un : lastid++ pour l'incrémenter ? Et du coup ne plus renvoyer l'ancien message.
Modifié par vincentD83 (12 Nov 2011 - 11:12)
vincentD83 a écrit :
Sauf qu'il y a UNE table côté client, et plusieurs clients.


Je me plaçais dans le cas où le chat serait utilisé pour uniquement 2 personnes. Enfin, que seules 2 personnes pouvaient s'échanger des messages. Mais comme tu le dis, cette solution a ses limites.

Sinon, au success de ton Ajax, pourquoi ne pas faire un : lastid++ pour l'incrémenter ? Et du coup ne plus renvoyer l'ancien message.
il va envoyer des valeurs d'id croissantes sans arret!!! et ce n'est pas le but. moi je veux qu'il arret de repeter le meme message mais comment le faire?! Smiley hum Smiley confuse
Modifié par nano3000 (13 Nov 2011 - 06:24)