L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX new!
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle

     Referencement
     Créat. de bannière

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
104509 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kits graphiques
     Création logo

Plus :
     Comparateur de prix
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Hebergement gratuit
     Le PHP facile
     Horoscope
     Comscripts
     WebmasterClub
     Activeartanima...
     Le village de ...
     L'écriteau
     Faro-dessing
     Gifs animés, f...
     Netsources
     Easy-script.com
     Trucs et astuc...
     Je javascript
     Créer son site...
     Les autres
     Votre site ici ?


Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]


[ Forums >> JavaScript >> Problèmes de création JavaScript / DHTML >> Problème création d'un mini-chat. ]

> Problème création d'un mini-chat.
[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 11:02 | 12 messages ]

Bonjour à toutes et à tous !

Je vous remercierai de bien vouloir me lire jusqu'au bout.
Je ne pense pas que mon problème soit bien compliqué à résoudre.
Je bute sur un truc depuis quelques jours, et je ne trouve aucune solution, alors voila :

J'essaye donc de créer un mini-chat, sans utiliser de frames ou d'iframes. Donc c'est un simple div.
Voici le code HTML + JavaScript :
<div id="chat">
<script language="javascript" type="text/javascript">
function refreshChat()
{
document.getElementById("chat").location.reload();
}
setTimeout("refreshChat();",5000);
</script>
<?php
include("chat.php");
?>
</div>



Le fichier chat.php :
<?php
include("include.php");
$result=mysql_query("SELECT * FROM chat ORDER BY date");
while($chat = mysql_fetch_array($result))
{
echo $chat["texte"]."<br />";
}
?>



Donc selon moi il y a 2 causes possibles :
- soit le script JavaScript est incorrect
- soit il est mal placé



[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 12:03 | 3861 messages ]


J'essaye donc de créer un mini-chat, sans utiliser de frames ou d'iframes. Donc c'est un simple div.


div ou pas OSEF, si tu n'utilises pas de frames ou d'iframes, tu vas être obligé de recharger toute la page. Sauf si tu utilises de l'AJAX


Voici le code HTML + JavaScript :
<div id="chat">
<script language="javascript" type="text/javascript">
function refreshChat()
{
document.getElementById("chat").location.reload();

l'instruction n'a aucun sens ; on ne peut faire un location.reload (ou équivalent) que pour toute une page (ou le document d'une iframe)

si tu utilisais ajax, il faudrait faire document.getElementById("chat").innerXML = le_contenu_ramené_par_AJAX



}
setTimeout("refreshChat();",5000);
</script>
<?php
include("chat.php");
?>
</div>



Le fichier chat.php :
<?php
include("include.php");
$result=mysql_query("SELECT * FROM chat ORDER BY date");
while($chat = mysql_fetch_array($result))
{
echo $chat["texte"]."<br />";
}
?>



Donc selon moi il y a 2 causes possibles :
- soit le script JavaScript est incorrect
- soit il est mal placé




________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 12:24 | 12 messages ]

Donc selon toi, je devrais modifier ma fonction JavaScript. OK, mais pour lui dire "le_contenu_ramené_par_AJAX", je fais comment ? Parce que ca doit me ramener mon fichier chat.php.

[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 14:31 | 3861 messages ]

http://www.editeurjavascript.com/trucs/index-cat_8.php


________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 17:30 | 12 messages ]

ok merci mais ca ne m'aide pas vraiment

je ne cherche pas à vérifier un truc en temps réel, mais actualiser le contenu d'une div régulièrement

[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 18:09 | 3861 messages ]

ben54120 a dit
ok merci mais ca ne m'aide pas vraiment

je ne cherche pas à vérifier un truc en temps réel, mais actualiser le contenu d'une div régulièrement


C'est le même principe.

Au lieu d'interroger événementiellement (sur le onkeyup) tu le fais à intervalles réguliers.
(BTW: utilise setInterval au lieu de setTimeout)

Au lieu d'interroger le serveur pour connaitre l'existence du pseudo, tu interroges le serveur pour connaitre le message à afficher.

Bref tout pareil.

________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 18:16 | 12 messages ]

OK
Je vais réfléchir un peu puis faire quelques essais. Si malgrès tout je ne parviens pas à obtenir ce que je désire, pourras-tu m'aider en me donnant un script ?

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 11-08-2008 à 19:19 | 12 messages ]

Je rame, ca actualise toutes les 5 secondes mais ca n'affiche pas ce que me retourne le fichier chat.php.



<div id="chat">
<script language="javascript" type="text/javascript">
function refreshChat()
{
document.getElementById("chat").innerHTML = document.getElementById("texte").value;
}
setInterval("refreshChat()",5000);
</script>
<div id="texte">
<?php
include("chat.php");
?>
</div>
</div>


[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 12-08-2008 à 10:41 | 3861 messages ]

ben54120 a dit
Je rame, ca actualise toutes les 5 secondes mais ca n'affiche pas ce que me retourne le fichier chat.php.


<div id="chat">
<script language="javascript" type="text/javascript">
function refreshChat()
{
document.getElementById("chat").innerHTML = document.getElementById("texte").value;
}
setInterval("refreshChat()",5000);
</script>
<div id="texte">
<?php
include("chat.php");
?>
</div>
</div>


Il n'y a pas d'AJAX cela ne peut donc pas fonctionner. (en plus d'être du grand n'importe quoi )

Soit tu rafraichis toute ta page
<html>
<META http-equiv="Refresh" content="5">
<body>
<div>
<?php
include("chat.php");
?>
<div>
</body>
</html>


Soit tu utilises AJAX pour ne rafraichir que la zone

<html>
<script>
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}

function refreshChat()
{
document.getElementById("chat").innerHTML = file("http://foo.com/chat.php");
}
setInterval("refreshChat()",5000);
</script>

<body>
<div id="chat" ><?php include("chat.php");
?></div>
</body>
</html>

________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 12-08-2008 à 11:45 | 12 messages ]

Ca marche !!
Bon, après avoir pris des cours sur javaScript, il est urgent que je fasse de même pour AJAX.

AJAX est une certaine "norme d'utilisation" de JavaScript non ?

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 12-08-2008 à 12:19 | 12 messages ]

Oups, j'ai un nouveua problème qui vient d'apparaitre !

Depuis qu'il ya le setInterval(), mon menu qui fonctionne par bloc cachés / affichés se met à déconner...
Le plus simple est que tu ailles voir ici : http://ns5.freeheberg.com/~ben54120/test/projet/index.php

En fait, lorsque l'on passe la souris de la rubrique du menu au sous-menu qui apparait, le sous-menu disparait quelques fois, uniquement lorsque l'on tombe dans l'intervalle du setInterval().
Je ne sais pas si je suis bien clair, mais regarde par toi-même et tu comprendras ce que je veux dire. Toujours est-il que, je le précise encore mais cela ne vient pas particulièrement du code du menu qui marchait très bien avant !

[ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 12-08-2008 à 16:04 | 3861 messages ]

ben54120 a dit
Oups, j'ai un nouveua problème qui vient d'apparaitre !

Depuis qu'il ya le setInterval(), mon menu qui fonctionne par bloc cachés / affichés se met à déconner...
Le plus simple est que tu ailles voir ici : http://ns5.freeheberg.com/~ben54120/test/projet/index.php

En fait, lorsque l'on passe la souris de la rubrique du menu au sous-menu qui apparait, le sous-menu disparait quelques fois, uniquement lorsque l'on tombe dans l'intervalle du setInterval().
Je ne sais pas si je suis bien clair, mais regarde par toi-même et tu comprendras ce que je veux dire. Toujours est-il que, je le précise encore mais cela ne vient pas particulièrement du code du menu qui marchait très bien avant !


Il y a n'importe quoi dans le onunload du body.
Tu n'as pas de div appelé "chat".

les onmouseover/out="color=truc" peuvent être remplacés par des styles.

utilise la console d'erreur de firefox pour tenter de deviner ce qui ne va pas.





________________
V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites

Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html

[ Posté par ben54120 ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 12-08-2008 à 17:52 | 12 messages ]

Alors en fait le div appelé chat n'est présent que lorsqu'on est connecté.

Et ce qu'il y a dans le onunload c'est parce que j'utilise des sessions, et que lorsque l'utilisateur ferme le navigateur sans cliquer sur "se déconnecter", alors il n'est pas déconnecté. Je pensais pourtant que les sessions étaient détruites à la fermeture du navigateur, mais non....
Donc je vais deja virer ca, mais si tu as une astuce...
Sinon pour les menus, bah j'en sais rien...



edit : J'ai modifié quelques trucs, j'ai donc enlevé ce qu'il y avait dans le onunload, j'ai supprimé une autre boulette, mais ca fait toujours pareil. Je suis persuadé que ce sont les setInterval qu'il y a dans mon fichier "js.js" qui font tout déconner. A chaque intervalle, lorsque l'on veut aller sur le sous-menu, celui-ci se désaffiche.
J'aurais une autre parade mais mon menu perdrait tout de suite son aspect plus ou moins technique qui serait d'enlever les onmouseout qui cachent les sous-menus, mais bon ca ne serait pas très pratique...

Sinon il est bien vrai que j'ai une tuile au niveau du div qui s'appelle chat. Le setInterval va le chercher alors qu'il n'est pas là.
Je vais essayer de trouver une parade en mettant le setInterval dans une nouvelle fonction que j'appellerai en temps voulu, cela semble-t-il plus ou moins correct ?
EDIT : Bah non ca change rien en mettant les setInterval dans une fonction. Bon le plus simple et que tu voies mon fichier javascript : http://ns5.freeheberg.com/~ben54120/test/projet/js.js


PS : c'est vraiment sympa de ta part de m'aider comme ca, entre guillemets de perdre ton temps pour m'aider. Si les gens étaient tous comme toi...



[Message édité par ben54120 le 12-08-2008 à 18:43]


[Message édité par ben54120 le 12-08-2008 à 18:44]





Services email :

Vous devez vous identifier pour profiter des services par email du forum.
Le forum ] [ Préférences ] [ Nouveau sujet ] [ Répondre ] [ Recherche ] [ Vos sujets ] [ Tous lus ] [ Flux RSS ]






37 visiteurs
actuellement en ligne

    PUBLICITE

Wilogo.com - Création Logo Entreprise

     ANNUAIRE WEBMAST.
Hewlett Packard
Espace HP pour les particuliers et petites entreprises.
http://h41257.www4.hp.com...
Cat : Hardware
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
55678 membres
8491 comptes CountUs
1506 comptes myCircle

     LES FORUMS :
14 forums
39327 topics
189131 messages
>> Les forums

    SONDAGE

Vous avez un blog ou site classique ?
Un blog
Un site classique
Les deux !
La mini-astuce "Navigateur" du jour par astuces-win
Dans Mozilla Firefox, utilisez Ctrl + T pour ouvrir un nouvel onglet. La navigation par onglets est beaucoup plus facile et permet de regrouper plusieurs sites en une seule fenêtre. Ctrl + W permettra de fermer l'onglet ouvert.
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2008 K-NETWORK - Tous droits réservés | CNIL N° 844440 | 18/11/2008 23:55:39 | Design by Studcrea | Gen. en 0.616 sec.