2010-08-05 8 views
1

J'ai une page qui montre les données insérées dans un mysql db; Je voudrais (si c'est possible) que cette page de vue se mette à jour automatiquement lorsqu'un enregistrement est ajouté à la base de données (les données ne sont pas insérées depuis la même page ou peuvent être insérées par un autre utilisateur).jquery mise à jour de la page lors de la mise à jour db

merci d'avance ciao h.

+0

Oui, c'est possible, quelle est votre question? –

+0

Je voudrais avoir un exemple ou une suggestion sur la façon de le faire, merci encore – haltman

+0

@Viper_Sb, je serais également intéressé de voir votre méthode. À court d'avoir la page de rafraîchir ou de faire une demande AJAX pour les mises à jour à un intervalle fixe, je ne sais pas comment vous le feriez. – blcArmadillo

Répondre

3

Première façon (la plus simple mais la plus agaçante):
Ajoute une actualisation meta à la page et la page entière est rafraîchie tous les x temps.

Deuxième voie (AJAX):
Je suppose que c'est ce que vous voulez.

  • charge par défaut page HTML etc ... permet de l'appeler index.php
  • À la page ci-dessus créer un élément div < > avec affichage de style: aucun comme

    <div id="mydata" style="display: none;"></div> 
    
  • Créer une Page PHP qui récupère et met en forme les données de la base de données et les imprime au format x, c'est-à-dire une table ou des balises p. aucun en-tête ou la page choses spécifiques seulement des données et des balises simples

  • Sur index.php mettre quelque chose comme ça

    <script type="text/javascript"> 
        function update() { 
         $.ajax({ 
          url: 'http://www.example.com/getData.php?q=latest', 
          success: function(response) { 
           $('#mydata'.html(response); 
          } 
         }); 
        } 
        // .ready function 
        $(function() { 
         // do setup stuff here, I think there is a refresh timer or something 
         // that you'd use to trigger it every x amount of time 
         // i.e something like this 
         update(); 
        }); 
    </script> 
    

EDIT: AJAX HTTP streaming forces données à des utilisateurs

0

Je sais sur la meilleure méthode pour le faire, mais une solution rapide et facile serait d'obtenir le nombre total de lignes dans votre tableau lors du chargement de la page. Ensuite, toutes les x secondes utilisent un script AJAX pour revérifier le nombre de lignes de cette table. Si cela a changé, vous pouvez avoir une logique supplémentaire qui récupère les nouvelles lignes.

+1

Je pense stocker l'horodatage de la dernière requête, puis vérifier s'il y a des messages plus récents est plus logique que de vérifier le nombre total de messages (et si quelqu'un supprime un message f.e.?) –

+0

En effet, c'est une autre façon de réaliser ce qui précède. Il vous suffit d'interroger la base de données pour les lignes après [dernière mise à jour] si vous stockez un horodatage avec des enregistrements. –

Questions connexes