Bonjour,
J'ai posté un sujet sur ce forum puisque j'ai besoin d'aide, comme je sais que ce forum est hyper actif =D
Alors voici mon problème :
J'ai un chat avec une partie privée et une partie publique.
Pour éviter le recharger toutes les 10 secondes la page ou mettre une frame, j'ai choisi la méthode javascript :
Code Javascript :
//fonction javascript qui va insérer dans une div du texte appelé à partir d'un variable GET
<script type="text/javascript">
function requete1(url, position)
{
var xhr_object = null;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
}
}
// dans le cas du get
xhr_object.send(null);
}
</script>
//Appel de la fonction pour le div public et prive
<script language="JavaScript">
//déclaration des variables
var public
var prive
var runningpub
var runningpriv
var speed = 5000;
//requête publique une fois
function main(){
public = window.setTimeout('requete1("index.php?option=com_joomla_chat&affichage=public", "public")', 0001);
}
//boucle publique
function startboucle(){
runningpub = setInterval( function(){window.setTimeout('requete1("index.php?option=com_joomla_chat&affichage=public", "public")', 1000);},speed);
}
//requête privé une fois
function mainprv(){
prive = window.setTimeout('requete1("index.php?option=com_joomla_chat&affichage=prive", "jc_area_1")', 0001);
}
//boucle privé
function startboucleprive(){
runningpriv = setInterval( function(){window.setTimeout('requete1("index.php?option=com_joomla_chat&affichage=prive", "jc_area_1")', 1000);},speed);
}
//lancement des fonctions
main()
startboucle()
mainprv()
startboucleprive()
</script>
Coté javascript c'est tout.
Après dans ma page web, j'ai évidemment un div public et prive, un peu comme ça :
Code HTML :
<html>
<body>
<div id="public">Texte affiché avant le chargement du javascript</div>
<div id="prive">Texte affiché avant le chargement du javascript</div>
</body>
</html>
et puis comme j'ai fait cela en un seul fichier, les premières lignes,
que je vous montre en dernières, ressemblent à cela :
Code PHP :
<?php
if(isset($_GET['affichage']) && ($_GET['affichage'] == "public")){ // var GET public
/* là on imagine des lignes de code qui vont dans une base de donnée mysql */
if(isset($_GET['affichage']) && ($_GET['affichage'] == "prive")){ // var GET prive
/* là on imagine aussi des lignes de code qui vont dans une base de donnée mysql */
}else{ // le reste du code
?>
Tout ces beaux petits codes fonctionnent à merveille. Sauf lorsqu'on l'utilise avec Internet Explorer
(et Maxthon et The World, mais on s'en fiche d'eux =p) !!!
En effet, le premier chargement se fait, mais lorsque le javascript recharge la page, aucun nouveau message s'affiche
alors que l'on vient de le poster (oui, on imagine aussi un joli formulaire, qui va se connecter à la bdd et envoyer des infos) et que ça marche sous firefox et opera, safari, gchrome, ...
Pouvez-vous m'aider ??
Merci!
PS: Voici à quoi ressemble le chat >>
chat.png