IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Div qui se recharge toutes les x secondes


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Points : 159
    Points
    159
    Par défaut Div qui se recharge toutes les x secondes
    Bonjour à tous

    Voilà, j'utilise le code suivant (trouvé je ne sais plus trop où... le JS c'est pas mon truc ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	<script language="javascript">
    		var xhr = new XMLHttpRequest();
    		var publicites = document.getElementById("publicites");
    		publicites.innerHTML = '<p>Chargement en cours</p>';
    		xhr.open("GET", "pubs_display.php");
    		xhr.onreadystatechange = function() {
    		  if (xhr.readyState == 4 && xhr.status == 200) {
    		    publicites.innerHTML = xhr.responseText;
    		    }
    		  }
    		xhr.send(null);
    	</script>
    Il est sensé me recharger régulièrement la div publicites ( <div id="publicites"> ), en y incluant le contenu "pubs_display.php". Problème, il ne m'affiche même pas le fichier pubs_display dans ma page !

    Pour information, le fichier pubs_display.php contient ceci :

    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
     
    $nb_aleat="10";
    $rep ="pubs/";
    // on liste les fichiers du repertoire
    if ($handle = opendir($rep)) {
    	$fichiers = array();
    	while (false !== ($file = readdir($handle))) {
    		if ($file != "." && $file != "..") {
    		$fichiers[] = $rep.$file;
    		}
    	}
    	closedir($handle);
    	// On crée le tableau contenant les fichiers à inclure
    	srand ((double) microtime() * 10000000); // fonction gettimeofday( ) doit etre active sur le serveur pour utiliser microtime( ) 
    	$img_aleat = array_rand ($fichiers, $nb_aleat);
    	shuffle($img_aleat);
    	for($i=0;$i<count($img_aleat);$i++) {
    		echo"<div class='logopub'><a href='http://".substr($fichiers[$img_aleat[$i]],4,-4)."' target='blank'><img src='".$fichiers[$img_aleat[$i]]."'></img></a></div><br>";
    	}
    }
    qui sert à afficher aléatoire 10 icônes de pubs (y'en a... beaucoup trop en tout ^^).

    Si quelqu'un comprend pourquoi...

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    N'utilise pas le status... Il pose des pb's inutiles...
    Si responseText != null ou "" et que readyState == 4, c'est bon...

    ATTENTION, TON CODE MARCHERA SUR FF MAIS PAR SUR IE !!!
    Regarde dans la faq pour savoir comment obtenir un XmlHttpRequest... ta méthode n'est pas cross-browser...

  3. #3
    Membre confirmé Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Points : 558
    Points
    558
    Par défaut
    regarde du coté de la fonction setTimeout en javascript j epense que tu trouvera des chose qui t'interesseront !

    PS: pour ce qui est du statut, c'est toujours interessant de le verifier (quand on sait a quoi ca correspond) pour faire une gestion d'erreur

  4. #4
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Mobius
    regarde du coté de la fonction setTimeout en javascript j epense que tu trouvera des chose qui t'interesseront !
    Je dirais plutot setInterval dans le cas présent... Plus simple

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Points : 159
    Points
    159
    Par défaut
    Merci beaucoup à vous deux pour vos réponses !
    J'ai fini par m'en sortir (pfiouh, c'est vraiment pas évident à manier XmlhttpRequest !)

    Quant au STATUS, d'accord avec toi, ça pose parfois des problèmes un peu étranges d'ailleurs ...

    (pour vous départager : je me suis servi de SetInterval :p )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/05/2014, 15h27
  2. Réponses: 4
    Dernier message: 06/11/2007, 11h44
  3. Réponses: 6
    Dernier message: 09/08/2007, 16h20
  4. definition d'une tache qui s'execute toutes les secondes
    Par Mokhtar BEN MESSAOUD dans le forum Administration système
    Réponses: 3
    Dernier message: 07/08/2007, 07h19
  5. Rafraichissement toutes les X seconde d'une div
    Par zulot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/03/2007, 20h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo