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 ..