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
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
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
$msg = str_replace(":1:","<img src='smileys/1.gif' alt='' />", $msg);
A la place de
$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 ..
Partager