IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Chat en ajax qui se reload periodiquement - Garder les values des inputs..


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 27
    Points
    27
    Par défaut [AJAX] Chat en ajax qui se reload periodiquement - Garder les values des inputs..
    Bonjour j'ai fais une barre ajax à la facebook qui marche parfaitement.

    Elle se reload les fenetre s'ouvrent une par membres ect..

    Par contre je fais un settimeout sur la div globale qui englobe tout le chat.

    Donc les inputs sont vidé toute les 5s (interval du time out)

    Tout mes inputs sont comme ceci :

    php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?
    echo'<input name="chatmsg'.$idAmiCo.'" id="chatmsg'.$idAmiCo.'"type="text" />';
    ?>


    Donc le name peut être chatmsg32 comme chatmsg36.. Ca varie bref.

    Mon but ?


    Conserver la valeur des input a chaque rechargement ajax.. mais voilà l'internaute peut avoir d'ouvert chatmsg37 , chatmsg26, chatmsg48, chatmsg117 ... selon les message qu'il recoit.

    Donc je vois pas comment parcours tout les name chatmsgX et les restituer après le timeout.. Parcours avec une boucle ca va être difficile car pas de valeurs de départ ni d'arrivée, et je veux faire ca directement dans ma fonction de reload ajax sans envoyer plus de var que l'id qui est l'id du membre connecté.

    La voici :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function chat(id){
    var spancontact = document.getElementById("contactsF"); 
    var param="idChatOnline="+id;
     
    $.post("../../chat/chat.php", param,
     
    function(data){
    spancontact.innerHTML = data;
    	}
     );
     
      setTimeout("chat("+id+")",5000);
    }

    Une idée, technique ?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    En fait, tu écrases le input toutes les 5 sec c'est ça ?

    La solution réside dans le fait de ne recharger que le contenu du input et non pas le input complet.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 27
    Points
    27
    Par défaut
    Plus précisément ?


    Là comme plusieurs messages privés peuvent arriver

    => Donc plusieurs fenêtres qui peuvent être fermés ou ouverte,sil faudrait que je fasse énormément de reload séparés (mon chat ressemble à la barre footer de chat facebook et ma fonction reload toute la barre)

    Donc il faudrait vraiment que je trouve un autre moyen de stocker ces valeurs..

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Tu appelles une page web en Ajax qui te renvoi un fichier xml qui contient :
    - les derniers messages reçus
    - les expéditeurs

    Avec cela, tu auras plus qu'a parser le fichier et mettre les messages dans les bonnes cases.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 27
    Points
    27
    Par défaut
    Bon j'ai joué avec getbyname

    voici le résult :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    function chat(id){
    var spancontact = document.getElementById("contactsF"); 
    var param="idChatOnline="+id;
    var chatmsg =document.getElementsByName("chatmsg");
    var i;
    var inputs = new Array();
     
    for(i=0;i<chatmsg.length;i++)
    {
    var input = document.getElementById(chatmsg[i].id);
    inputs[input.id]=input.value;
     
    }
     
    // AJAX
    $.post("../../chat/chat.php", param,
     
    function(data){
    spancontact.innerHTML = '<img src="../images/iconechat.png" style="top:5px;position:relative;margin-right:5px"/>'+data;
     
    	}
     
     );
    //
     
       for(var id1 in inputs) {
      alert(id1);
      var texteinput= inputs[id1];
      alert(texteinput);
      var inputfinal = document.getElementById(id1);
    inputfinal.value=texteinput;
    }
     
      setTimeout("chat("+id+")",5000);
     
    }
    Alors alert(texteinput) me renvoi bien le contenu de l'input et alert(id1); l'id de l'input

    Mais voilà inputfinal.value=texteinput; ne ré attribue pas la value! Le champ se vide toujours...

    Une idée?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 27
    Points
    27
    Par défaut
    Je bloque vraiment l'erreur est incompréhensible..

Discussions similaires

  1. Formulaire dynamique qui ne me renvoie pas les valeurs des champs
    Par heero37 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/08/2014, 12h40
  2. [AJAX] Chat qui marche mais crée des erreurs
    Par _Kira_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/01/2009, 05h20
  3. [AJAX] Garder les valeurs des champ d'un formulaire en mémoire
    Par joss91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2008, 09h56
  4. [AJAX] chat php ajax
    Par xperienss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2006, 20h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo