Bonjour ,

j'ai mis dans un fichier javascript

function autoRefresh_div()
 {
      $("#puu").load("chat.php");
  }

  setInterval('autoRefresh_div()', 2000);

j'ai enregistré la bibli jQuery dans jQuery_bibli.js .

j'ai bien mis les deux liens de la bibli et du javascript dans head de ma page chat.php.

Mais dans le tchat la div id="puu" ne s'actualise toujours pas seule.

26 réponses


Ynèv
Auteur

dans la console du navigateur j'ai comme msg d'erreur $ is not defined

Bonsoir.
Le fichier JavaScript de ton code est bien chargé après celui de jQuery ?
Car si tu as cette erreur, ça veut dire que lorsque le fichier de ton code est chargé qu'il ne connais pas l'alias de jQuery qui est $.
Par contre fais attention, car au moment ou le fichier de ton code est chargé, le DOM de la page n'est pas totalement chargé, du coup tu risques d'avoir une erreur.
Tu as deux possibiltés, soit vérifier en JavaScript que le document a bien été chargé, ou alors charger le fichier de ton code JavaScript juste avant la fermeture du body.
En général pour des raisons de performances pour le chargement de la page, il est préférable de charger le maximum de fichiers JavaScript avant la fermeture du body et non dans le head.

Ynèv
Auteur

j'ai bien mis le lien js avant la fin de body , mais le message d'erreur est toujours le meme.

Ynèv
Auteur
    <script  src="jQuery_bibli.js"></script>
        <script type="text/javascript" src="rafraichir.js"></script>
    </body>
</html>
Ynèv
Auteur

j'avais pas vu mais j'ai aussi :

Uncaught SyntaxError: Invalid regular expression flags

Il te faut bien vérifier que le fichier de la librairie est bien chargée, qu'il n'y a pas d'erreur dans le nom du fichier et/ou dans le chemin d'accès.
Sinon, je n'avais pas fait gaffe, mais je doute beaucoup que ton setInterval fonctionne correctement, car ce n'est pas setInterval('autoRefresh_div()', 2000); mais setInterval(autoRefresh_div(), 2000);.

Uncaught SyntaxError: Invalid regular expression flags

Une erreur de syntaxe dans un des fichiers, peut-être ce que j'ai dis juste avant.

Ynèv
Auteur

le chemin d'accès est le plus simple du monde tout est dans un meme dossier et il n'ya aucune erreur de nom j'ai vérifié...

Serait il possible que le pbm vienne de la librairie ?

le chemin d'accès est le plus simple du monde tout est dans un meme dossier et il n'ya aucune erreur de nom j'ai vérifié...

Si ton fichier est à la racine du site/serveur, je te conseille de préfixer le nom du fichier par /, car si tu affiches une page qui se situe dans un dossier par exemple, le navigateur va tenter de charger le fichier à partir de ce dossier et non depuis la racine du site/serveur.
Par exemple :

<script  src="/jQuery_bibli.js"></script>
<script type="text/javascript" src="/rafraichir.js"></script>

Serait il possible que le pbm vienne de la librairie ?

Pour éviter les éventuelles erreurs, le mieux est de télécharger directement le fichier de la librairie au lieu de copier/coller le contenu dans un fichier, ou alors de charger le fichier de la librairie via un CDN.

Ynèv
Auteur

j'ai essayé je n'y parviens pas je suis pourtant allé sur le site officiel :https://jquery.com/download

Ils proposent de la copier mais pas telecharger...

j'ai essayé je n'y parviens pas

Que veux-tu dire par :

je n'y parviens pas

Tu n'arrives pas à télécharger le fichier ?

Ynèv
Auteur

oui Ils proposent de la copier mais pas telecharger...

Ils proposent de la copier mais pas telecharger...

Hein ?

To locally download these files, right-click the link and select "Save as..." from the menu.

Ynèv
Auteur

euh j'ai honte.

Ynèv
Auteur

maintenant ça marche mais ça a dupliquer ma page ?!

ça a dupliquer ma page

C'est à dire et quelle page ?

Je vois, c'est normal.
Parge que de cette manière tu lui dit de prendre tous le contenu de la page chat.php et de l'inclure dans #puu, remplaces par ceci :

$("#puu").load("chat.php #puu");
Ynèv
Auteur

j'ai fait ducoup $('#puu').load('chat.html #puu');
et aussi $("#puu").load("#puu");
mais ça fonctionne pas non plus :(

Ynèv
Auteur

J'ai trouvé ça sur un forum mais...

function autoRefresh_div() {
$.ajax({
    url: "chat.php", 
    success:
        function(retour){
        $('#puu').html(retour);
    }
});

}

setInterval(autoRefresh_div(), 1000);

marche pas non plus ...

Je veux bien t'aider, mais il faudrait que tu comprennes un minimum ce que tu fais, si la page qui contient le script se nomme chat.php, ce n'est pas en changeant son extension dans la requête ajax que ça changera quelque chose.
Je te recommande fortement de t'inspirer de Tutoriel Vidéo jQuery PHP » Créer un tchat en Ajax/PHP, tu remarqueras que le système est plus approfondi et ça évite de devoir ré-afficher tous les messages.

Ynèv
Auteur

merci mais je suis pas prenium je ne peut donc pas regarder ce tuto.

Ynèv
Auteur

oui donc ça veut dire que je dois tout refaire je prefere evoluer le code que j'ai deja parceque si je dois tout refaire a chaque fois j'avancerai jamais XD

Pas besoin d'être premium cela doit être un bug

Ce n'est pas un bug et il faut bien être Premium pour le visionner, tout du moins depuis le site.

donc ça veut dire que je dois tout refaire

Je t'ai dit de t'en inspirer car ce que tu fais c'est que tu récupères tous les messages à chaque requête ajax et tu les ré-affiches tous dans le HTML et de cette manière tu comprendras mieux comment faire tes requêtes Ajax.

Ynèv
Auteur

il faut utiliser $ et un "ordre" comme load ou hidde ou autre j'ai bien compris ^^

Sinon j'ai finalement fais :

$(document).ready(function(){
setInterval(function(){
$("#puu").load('chat.php #puu')
}, 1000);
});

Ce qui regle presque le pbm a 1 detail pres c'est que #puu se charge bien dans #puu mais par dessus ce qui altere le visuel du chat ...

Ynèv
Auteur

j'ai trouvé c'est bon merci encore ^^