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

jQuery Discussion :

Rafraîchissement automatique d'une div dans ma page toute les "x" secondes.


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Rafraîchissement automatique d'une div dans ma page toute les "x" secondes.
    Bonjour,

    Voila j'aimerais que seule une partie de ma page "demandeAtraiter.php" s'actualise. Pour ce faire, j'ai utilisé ce bout de code :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php 
    session_start(); 
    require_once("headers/enteteCo.php"); 
    ?>
     
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
     $(document).ready(function() {
     	 //$("#responsecontainer").load("demandeAtraiter.php");
       var refreshId = setInterval(function() {
          $("#responsecontainer").load('demandeAtraiter.php?randval='+ Math.random());
       }, 9000);
       $.ajaxSetup({ cache: false });
    });
    </script>
    </head>
     
    <body>
     
     
     
    <div id="responsecontainer">
    |
    |
    |
    |
    CODE PHP
    |
    |
    </div>
    Seulement j'ai deux problèmes !

    1 / Mon header "headers/enteteCo.php" s'affiche deux fois.

    2 / Mon navigateur plante au bout d'1 minute, bien que le div se rafraîchit..

    Je débute et je fais de mon mieux, mais la je sèche complètement. HELP !!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Mon header "headers/enteteCo.php" s'affiche deux fois.
    En même temps, c'est ce que tu demandes : afficher la page complète, donc y compris les éléments que tu ne veux pas afficher !

    Mon navigateur plante au bout d'1 minute
    En même temps, c'est ce que tu demandes : afficher la page complète, donc y compris les scripts ! Ce qui signifie qu'à chaque rafraichissement, tu rajoutes un timer à ceux déjà existants.

    Citation Envoyé par kurt225
    Je débute et je fais de mon mieux
    Lorsque l'on débute, il est important de commencer par les bases... Là, tu sembles débuter en recopiant du code dont tu ne comprends pas vraiment ce qu'il fait.

    Pour répondre à certaines de tes questions : Comprendre les mécanismes d'AJAX.

    Sinon, tu peux utiliser Loading Page Fragments, mais je pense qu'il serait préférable de revoir la conception de façon globale.
    Tu peux créer un script qui renvoie le contenu à rafraichir (et uniquement ce contenu) et une page d'appel qui au chargement inclurait ce script.

  3. #3
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Tu peux créer un script qui renvoie le contenu à rafraichir (et uniquement ce contenu) et une page d'appel qui au chargement inclurait ce script.

    Le contenu <div> est dans la page demandeAtraiter.php.

    -Tu me dis de créer un script (dans un fichier .js à part ?) qui refresh la <div> en question ?
    -Et la page d'appel, genre un fichier php : "demandeAtraiterCall.php" par exemple? Dedans j'appelle le script via le <script text/javascript src="monscript.js">?

    J'ai bien tout saisi ?


    En tout cas merci je vais lire la doc, je ne suis pas très malin, mais j'vais faire mon max. Je reviendrais si je suis sur une piste.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est un script PHP qui doit contenir le contenu à rafraichir.
    Dans ton cas (à moins que j'ai raté un truc), demandeAtraiter.php est une page complète, or AJAX n'est pas fait pour charger une page complète (et de toute façon, intégrer une page complète dans un document HTML est non valide) mais des portions de pages.

    Donc dans ton cas, le script demandeAtraiter.php ne doit contenir que le contenu sensé être rafraichi. Le reste de la page doit se trouver dans un autre script PHP, par exemple (je me base sur ton code) :
    Code php : 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
    <?php 
    session_start(); 
    require_once("headers/enteteCo.php"); 
    ?>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
     $(document).ready(function() {
     	 //$("#responsecontainer").load("demandeAtraiter.php");
       var refreshId = setInterval(function() {
          $("#responsecontainer").load('demandeAtraiter.php?randval='+ Math.random());
       }, 9000);
       $.ajaxSetup({ cache: false });
    });
    </script>
    </head>
    <body>
    <div id="responsecontainer">
    <?php include('demandeAtraiter.php'); ?>
    </div>
    Ainsi, demandeAtraiter.php ne sert qu'à alimenter la div en question et uniquement à ça, du coup, tu peux l'appeler en AJAX pour mettre à jour cette div.

  5. #5
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Merci Bovino, j'ai fais comme tu as dit,

    Ca fonctionne comme sur des roulettes, plus de freeze.

    Thanks amigo

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

Discussions similaires

  1. [AJAX] Rafraichir une partie de la page toutes les secondes
    Par identifiant_bidon dans le forum AJAX
    Réponses: 13
    Dernier message: 20/03/2011, 08h18
  2. JS qui permet de modifier une div dans ma page à partir d'un clic
    Par sheira dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/09/2010, 10h53
  3. [DOM] Ajouter une DIV dans une page web
    Par Nulenprogra dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/09/2007, 16h48
  4. Réponses: 4
    Dernier message: 13/08/2007, 17h13

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