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

Bibliothèques & Frameworks Discussion :

Refresh Ajax Php


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut Refresh Ajax Php
    Bonjour à tous,

    Voilà, je dois afficher sur une page produit une offre de pub, mais j'en ai plusieurs qui doivent tourner de manière aléatoire. Je pensais donc faire cet affichage aléatoire en php.
    Mais le problème est que cette page est en cache (pour des questions de rapidité d'affichage), donc à moins de vider le cache à chaque fois, ce sera toujours la même offre qu'i s'affichera.

    Plusieurs personnes m'ont dit de le faire en Ajax, mais vu que je n'y connais pas grand chose pour le moment (eh oui il faut que je m'y mette!!!), que me conseillez vous?
    Il faudrait un refresh toutes les 20 30 secondes

    Merci par avance pour vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Salut,

    Pour faire de l'Ajax simplement, tu peux utiliser la librairie javascript Prototype (http://prototypejs.org/).

    Ensuite, pour implémenter une mise à jour périodique => http://prototypejs.org/api/ajax/periodicalUpdater.

    +

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Merci pour ta réponse
    Je suis allée sur Prototype pour regarder periodicalUpdater(), mais je dois avouer que je suis un peu larguée.
    Comment on l'utilise?

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    1. télécharge et installe la librairie prototype.js sur le serveur
    2. dans le <head> de ta page HTML, ajoute un lien pour la charger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language="javascript" type="text/javascript" src="chemin/vers/prototype.js"></script>
    3. écris un script PHP qui récupére l'image aléatoirement (get_random_img.php)
    4. ajoute un conteneur dans le <body> de ta page HTML pour recevoir l'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="image_pub"></div>
    5. ajoute l'appel AJAX (frequency est le raffraichissement en secondes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
      new Ajax.PeriodicalUpdater('image_pub', 'http://www.site.com/.../get_random_img.php', {
        frequency: 5
      });
    </script>
    Un exemple ici :
    http://prototype.js.le-developpeur-web.com/Ajax.PeriodicalUpdater.CONSTRUCTOR().php

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    En fait je vais avoir 3 4 blocs a afficher en aléatoire, donc je pensais créer une variable php pour chaque bloc, mais pas forcement faire appel à un autre fichier

    Est ce qu'en Javascript avec un tableau et un setInterval, ca serait possible?

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Si on suit mon idée, le fichier get_random_img.php contiendrait :
    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
     
    ...
    // initialise les offres
    $pub_offres = array();
    $pub_offres[] = '<img src="chemin/vers/images/offre1.jpg">';
    $pub_offres[] = '<img src="chemin/vers/images/offre2.jpg">';
    $pub_offres[] = '<img src="chemin/vers/images/offre3.jpg">';
    $pub_offres[] = '<img src="chemin/vers/images/offre4.jpg">';
     
    // mélange les offres
    srand((float)microtime()*1000000);
    shuffle($pub_offres);
     
    // mise en forme de ta sortie HTML (ici images côtes à côtes par ex.)
    $html_output = implode("", $pub_offres);
     
    // envoi la réponse
    echo $html_output;
    ...
    Mais tu vas dire que je ne réponds pas à ta question..

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Merci pour ta réponse

    C'est bon, j'ai réussi à utiliser la fonction!!!!
    Maintenant je dois m'en servir sur un autre élément, avec alternance entre 2 blocs, mais je ne dois avoir qu'une seule alternence et après ca doit se figer
    J'utilise donc la méthode Ajax.PeriodicalUpdater.stop(), mais il doit me manquer une condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type="text/javascript">
    	new Ajax.PeriodicalUpdater('box_temps', 'http://www2/include/box_temps.php', {
        frequency: 15
      	});
    	Ajax.PeriodicalUpdater.stop();
    </script>
    Il fuat rajouter un parametre?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Ou existe-t'il un parametre pour limiter a x fois le nombre de refresh?

  9. #9
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Tu dois pouvoir stopper le handler à l'issue de la première exécution en utilisant l'option onSuccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    new Ajax.PeriodicalUpdater('image_pub', 'http://www.site.com/.../get_random_img.php', {
      frequency: 5,
      onSuccess: function() {
        this.stop();
      }
    });

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Merci pour cette réponse. Mais si je mets ce code, ça me stoppe tout affichage qui vient après, donc les 3/4 de ma page ne s'affichent pas...

  11. #11
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 92
    Par défaut
    Citation Envoyé par ccsuperstar Voir le message
    si je mets ce code, ça me stoppe tout affichage qui vient après
    Je ne comprends pas vraiment ce que tu veux dire par là. A quel moment l'arrêt se déclenche t'il ? L'affichage qui vient après représente quoi ?
    Tu peux rajouter le HTML attendu en sortie ?

    A tout hasard, qu'est-ce que ça donne si tu remplaces onSuccess par onComplete ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Par défaut
    Citation Envoyé par picwic Voir le message
    1. télécharge et installe la librairie prototype.js sur le serveur
    2. dans le <head> de ta page HTML, ajoute un lien pour la charger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language="javascript" type="text/javascript" src="chemin/vers/prototype.js"></script>
    3. écris un script PHP qui récupére l'image aléatoirement (get_random_img.php)
    4. ajoute un conteneur dans le <body> de ta page HTML pour recevoir l'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="image_pub"></div>
    5. ajoute l'appel AJAX (frequency est le raffraichissement en secondes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
      new Ajax.PeriodicalUpdater('image_pub', 'http://www.site.com/.../get_random_img.php', {
        frequency: 5
      });
    </script>
    Un exemple ici :
    http://prototype.js.le-developpeur-web.com/Ajax.PeriodicalUpdater.CONSTRUCTOR().php

    Hello!
    Je viens d'essayer d'utiliser ce code, mais au bout du délai donné (chez moi 15sec) on dirait qu'il essaie de raffraichir la page dans la div, mais elle ne s'affiche plus...
    Si quelqu'un pouvait m'aider?
    Merci d'avance
    Je précise que je découvre l'ajax...
    Bonne journée

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Par défaut
    Je viens également de tenter ce 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    <head>
     
            <script type="text/javascript">
    function Refresh("texte_radio","./OnAir.php") {
    var xhr_object = null;   
    if(window.XMLHttpRequest)
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject)
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else {
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return;
    }
    xhr_object.open("POST", "./OnAir.php" , true);
    xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) {
       document.getElementById("texte_radio").innerHTML = xhr_object.responseText;
       setTimeout("Refresh("texte_radio","./OnAir.php")",10000);
      }
    }
    xhr_object.send(null);
    }
            </script>
     
    </head>
     
     
     
    <body onLoad="Refresh('texte_radio', './OnAir.php');">
     
     
     
    <div id="texte_radio">
      <?php include ("./OnAir.php");?>  
    </div>
     
    </body>
    Mais rien ne se passe...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Par défaut
    Hello!
    Personne me donner un tit coup de main?merci
    Bonne semaine

Discussions similaires

  1. [ajax-PHP] accent en POST
    Par bubble_gum dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/05/2009, 09h20
  2. [Cookies] PB cookie dans un script AJAX/PHP
    Par cassy dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2006, 11h35
  3. [PHP-JS] Auto-complétion [Ajax,PHP & MySQL]
    Par xdiethank dans le forum Langage
    Réponses: 4
    Dernier message: 21/07/2006, 15h18
  4. [Frameworks] Ajax PHP
    Par marcha dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 09/06/2006, 11h50
  5. [AJAX] Ajax, Php, Sessions, OScommerce
    Par Florent08800 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/05/2006, 10h57

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