2010-01-15 5 views
2

J'ai chargé un contenu dans un div en utilisant php get_file_contents, maintenant je veux le rafraîchir en utilisant ajax mais je ne peux pas comprendre comment le faire.get_file_contents refresh div

Exemple de code:

<script> 
function refreshmydiv(){ 
... 
} 
</script> 

<div id="mydiv"> <? echo nl2br(htmlspecialchars($myfile)); ?> <div> 
<a href="#" onclick="refreshmydiv();">Refresh My Div</a> 

Répondre

3

Alors, est ici une façon de le faire. Tout d'abord, les parties:

myrefreshfunction

Cette fonction a besoin de faire un appel AJAX à refresh.php ou une autre page. Ensuite, il devrait remplacer le contenu de mydiv avec le code HTML qui est renvoyé.


refresh.php

Cette page doit retourner le code HTML pour la div. Il n'a pas besoin de retourner toute la page, il suffit de retourner le contenu de la div.

Dans ce cas, il suffirait d'écho get_file_contents et rien d'autre.

ex.

<?php 
$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 
?> 

Ensuite, le processus de régénération ressemble à ceci:

  1. Votre utilisateur appuie sur le bouton pour actualiser la div.

  2. Votre fonction demande une page.

  3. La page renvoie SEULEMENT le contenu de la div.

  4. Votre fonction remplace le contenu de la div par la page qu'elle vient de demander.

Il existe d'autres façons de le faire, c'est une façon très simple de le faire.


Si vous utilisez jQuery, votre myrefreshfunction est essentiellement une ligne de code:

$('mydiv').load('refresh.php'); 
+0

merci, vous avez ouvert mes yeux, c'était plus facile que je pensais;) – eben

+0

pour moi, la ligne de code doit être $ ('# mydiv'). Load ('refresh.php'); –

1

Si vous utilisez le Prototype JavaScript framework vous pouvez le faire de cette façon:

<script type="text/javascript" src="prototype.js"></script> 
<script type="text/javascript"> 
    function refreshmydiv() { 
     new Ajax.Request('/ajax/getdivcontents.php', { 
      method: 'post' , 
      onSuccess: function(request) { 
       $('mydiv').update(request.responseText); 
      } 
     }); 
    } 
</script> 
<div id="mydiv"> <? echo nl2br(htmlspecialchars($myfile)); ?> <div> 
<a href="#" onclick="refreshmydiv();">Refresh My Div</a> 

Cela fera un appel Ajax lorsque vous cliquez sur le lien "Refresh My Div". La page getdivcontents.php va créer le code HTML que vous souhaitez afficher.

+0

c'est une bonne façon de le faire thx – eben