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

Langage PHP Discussion :

Interaction AJAX et PHP


Sujet :

Langage PHP

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 65
    Points : 31
    Points
    31
    Par défaut
    Merci,

    Alors j'ai fais comme ça mais a ne marche toujours pas.

    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
     
    $data_source_file = 'welcomeMessage.php';
     
    while (true) {
     
        $last_ajax_call = isset($_GET['timestamp']) ? (int)$_GET['timestamp'] : null;
     
        // PHP caches file data, like requesting the size of a file, by default. clearstatcache() clears that cache
        clearstatcache();
        // get timestamp of when file has been changed the last time
        $last_change_in_data_file = filemtime($data_source_file);
     
        // if no timestamp delivered via ajax or data.txt has been changed SINCE last ajax timestamp
        if ($last_ajax_call == null || $last_change_in_data_file > $last_ajax_call) {
     
     
            ob_start(); 
            $data = ob_get_contents($data_source_file);
            ob_end_flush();   
     
            $result = array(
                'data_from_file' => $data,
                'timestamp' => $last_change_in_data_file
            );
     
            $json = json_encode($result);
            echo $json;
     
            break;
     
        } else {
            sleep( 1 );
            continue;
        }
    }
    Je suis pas a l'aise avec ob_start()...
    J'ai du surement faire une erreur dans mon code.

    CDT

  2. #22
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    À la place de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        if ($last_ajax_call == null || $last_change_in_data_file > $last_ajax_call) {
     
     
            ob_start(); 
            $data = ob_get_contents($data_source_file);
            ob_end_flush();   
     
            $result = array(
                'data_from_file' => $data,
                'timestamp' => $last_change_in_data_file
            );
     
            $json = json_encode($result);
    Essaie cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        if ($last_ajax_call == null || $last_change_in_data_file > $last_ajax_call) {
     
            ob_start(); 
            include $data_source_file;
            $data = ob_get_clean(); // Récupère la data générée par PHP lors du include
     
            $result = array(
                'data_from_file' => $data,
                'timestamp' => $last_change_in_data_file
            );
     
            $json = json_encode($result);
    Cela devrait fonctionner si $data_source_file est un script PHP "classique" qui affiche "bêtement" les données.

    Si le script $data_source_file n'est pas destiné à être appelé directement en HTTP, tu devrais le transformer en fonction, ou au moins le réécrire sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
     
    // Construction de $data
    // ...
     
    return $data;
    Ce qui te permettrait de faire plus propre sans les fonctions ob_*() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        if ($last_ajax_call == null || $last_change_in_data_file > $last_ajax_call) {
     
            $data = include $data_source_file;

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2020
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2020
    Messages : 65
    Points : 31
    Points
    31
    Par défaut
    Merci, probleme resolu

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Interaction entre AJAX et PHP
    Par Acarya dans le forum AJAX
    Réponses: 11
    Dernier message: 26/06/2017, 11h06
  2. [AJAX] chat php ajax
    Par xperienss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2006, 21h49
  3. [AJAX] Moins de requetes possibles sur un server. Ajax ou Php?
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/05/2006, 14h08
  4. [Librairies] Ajax et PHP, qu'en pensez-vous ?
    Par shadeoner dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 05/05/2006, 13h41
  5. [AJAX] Communication PHP ~ JavaScript
    Par TheBaeK1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/05/2006, 19h24

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