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

JavaScript Discussion :

[AJAX] Remplacer une cha�ne par une image (probl�me rafra�chissement ajax !)


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par d�faut [AJAX] Remplacer une cha�ne par une image (probl�me rafra�chissement ajax !)
    Bonsoir !
    J'ai un petit soucis ..
    En fait, j'ai mon tchat, que je rafra�chis toutes les x secondes en ajax.
    Le probl�me, c'est qu'au lieu de m'afficher les smileys, il m'affiche le code correspond aux smileys

    Exemple ( :1: > ) :
    Avec ajax il va m'afficher �a :1:
    Mais sans l'ajax, il va m'afficher �a

    Quand je vire le rafra�ssement ajax, j'ai bien l'affichage de mes smileys.
    Si quelqu'un pouvait m'aider ... �a serait sympa, car je vois le probl�me, en fait mon object xhr r�cup�re les informations en texte, donc lors de l'affichage, il m'affiche le code, et non le smiley, mais j'ai pas r�ussi � trouver une solution

    Je vous met le code.

    ajax.js
    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
     
    function get_Xhr()
    {
    	var xhr_object = null;
     
    	if(window.XMLHttpRequest) // Firefox
       		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // Internet Explorer
       		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
       		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
     
       	return xhr_object;
    }
     
    function refresh_div()
    {
    	var xhr_object = get_Xhr();
    	xhr_object.open("GET", "messagetchat.php", true);
    	xhr_object.onreadystatechange = function()
    		{
    			if(xhr_object.readyState == 4)
    			{
    				document.getElementById('tchat').innerHTML = xhr_object.responseText;
    			}
    		}
    	xhr_object.send(null);
     
    	setTimeout('refresh_div()', 5000);
    }
    messagetchat.php
    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
     
    <?php
    include 'bdd/parametres.php';
     
    $requete = "SELECT * FROM msgtchat Order by idmsg Desc";
    $resultat = mysql_query($requete)
            OR die ('Erreur sur la requête');
     
    while ($curseur = mysql_fetch_array($resultat))
    {
            $idmembre = $curseur['idmembre'];
            $msg = $curseur['msg'];
            $time = $curseur['time'];
            $date = $curseur['date'];
            $heure = $curseur['heure'];
     
            for ($i=1; $i<=$_SESSION['nbsmiley']; $i++)
            {
                            $msg = str_replace(":$i:","<img src='smileys/$i.gif' alt='' />", $msg);
            }
            
            $requete2 = "SELECT login, sexe FROM membres WHERE idmembre ='$idmembre' ";
            $resultat2 = mysql_query($requete2)
                    OR die('Erreur SQL');
            $lecture2 = mysql_fetch_array($resultat2);
            $login = $lecture2['login'];
            $sexe = $lecture2['sexe'];
            ?>
    	<font color="<?php if($sexe == 'F') { echo "#ff229e"; } else { echo "#4c22ff"; } ?>"><b><?php echo $login; ?></b></font> <b>:</b> <?php echo $msg; ?>
     
    	<br />
    <?php
    }
    ?>

    EDIT : Je viens de remarquer un truc qui fonctionne, mais bon ... si j'ai 100 smileys ... �a va faire 100 lignes de code

    Quand je met
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $msg = str_replace(":1:","<img src='smileys/1.gif' alt='' />", $msg);
    A la place de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $msg = str_replace(":$i:","<img src='smileys/$i.gif' alt='' />", $msg);
    �a fonctionne, mon smiley est bien affich� ... mais bon, comment puis-je fairep our que �a fonctionne quand je met une variable � la place du nombre ? pour pouvoir mettre �a dans une boucle pour ..

  2. #2
    Membre chevronn� Avatar de d-Rek
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par d�faut
    Tu peux nous faire un mini-trace ?
    Si j'ai bien compris tu veux faire dynamiquement :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $msg = str_replace(":$1:","<img src='smileys/1.gif' alt='' />", $msg);
    avec $i qui s'incr�mente sauf que ton $1 s'incr�mente pas.
    Tes smileys sont nomm�s 1.gif, 2.gif, puis 3.gif .... ?

    C'est ta boucle qui fonctionne pas ?

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par d�faut
    Citation Envoy� par d-Rek
    Tu peux nous faire un mini-trace ?
    Si j'ai bien compris tu veux faire dynamiquement :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $msg = str_replace(":$1:","<img src='smileys/1.gif' alt='' />", $msg);
    avec $i qui s'incr�mente sauf que ton $1 s'incr�mente pas.
    Tes smileys sont nomm�s 1.gif, 2.gif, puis 3.gif .... ?

    C'est ta boucle qui fonctionne pas ?
    J'ai 28 smileys, donc je fais une boucle "for" de $i = 1 � $i = 28
    $msg = str_replace(":$i:","<img src='smileys/$i.gif' alt='' />", $msg);

    Et en fait, $i c'est le num�ro du smiley, donc quand la personne tape :
    > :1: �a lui affiche le smiley 1.gif
    > :2: �a lui affiche le smiley 2.gif

    Et le soucis avec ajax pour la rafra�chissement, c'est qu'il m'affiche par exemple pour le smiley 1 > :1: (il m'affiche le code correspond et non le smiley)

    Par contre, quand je retire ma boucle "for" et que je remplace la variable $i par le num�ro du smiley, bah �a marche impeccable.. mais bon, �a me fait 28 lignes de code -_- au lieu de 2 avec la boucle "for" lol

    Donc par exemple dans mon code quand je met :

    $msg = str_replace(":1:","<img src='smileys/1.gif' alt='' />", $msg);
    etc..

    Bah si la personne tape :1: l� �a lui affiche bien le smiley

Discussions similaires

  1. R�ponses: 0
    Dernier message: 04/03/2011, 12h16
  2. R�ponses: 9
    Dernier message: 28/10/2010, 12h15
  3. Remplacer une cha�ne par une autre plus petite
    Par qqoos dans le forum Cobol
    R�ponses: 6
    Dernier message: 08/05/2009, 18h24
  4. Action : remplacer la fonction par une cha�ne
    Par Invit� dans le forum JSF
    R�ponses: 2
    Dernier message: 06/02/2009, 03h42
  5. R�ponses: 1
    Dernier message: 06/08/2007, 14h20

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