2008-12-16 14 views
2

J'ai un fichier PHP, Test.php, et il a deux fonctions:Comment charger une page PHP dans la même fenêtre dans jQuery

<?php 
    echo displayInfo(); 
    echo displayDetails(); 
?> 

JavaScript:

<html> 
    ... 
    <script type="text/javascript"> 
     $.ajax({ 
      type:'POST', 
      url: 'display.php', 
      data:'id='+id , 
      success: function(data){ 
       $("#response").html(data); 
      } 
     }); 
    </script> 
    ... 

    <div id="response"> 
    </div> 
</html> 

Il renvoie la réponse de jQuery. La réponse montre <a href=Another.php?>Link</a>. Lorsque je clique sur le lien Another.php dans test.php, il charge dans une autre fenêtre. Mais j'ai besoin pour charger la même zone <div> </div> sans changer le contenu de test.php, puisqu'il a displayInfo(), displayDetails(). Ou est-il possible de charger une page PHP à l'intérieur des éléments <div> </div>?

Comment puis-je résoudre ce problème?

Répondre

5

Si je comprends bien, vous souhaitez que le lien a annule la navigation, mais déclenche la fonction AJAX?

Dans ce cas:

$("#mylink").click(function() { 
    $.ajax({ type: "POST", url: "another.php", data: {id: "somedata"}, function(data) { 
     $("#response").html(data); 
    }); 
    return false; 
}); 
0

Krof est correct,

Un comportement indésirable possible de c'est cependant qu'il interroge les données chaque fois que le lien est cliqué. Vous pouvez définir l'événement pour n'appeler qu'une fois la requête ajax en utilisant un.

$("#mylink").one('click', function() { 
    // ajax call 
    return false; 
}); 

Ne pas oublier de mettre href = « javascript: {} » dans votre lien donc après l'événement est déclenché une fois que le lien ne fera pas quoi que ce soit;

+0

En fait, la partie 'href =" "' n'est pas nécessaire si vous annulez un événement de bulles en retournant 'false'. Bien que je pense que cela aide si vous voulez éviter d'avoir le contour dessiné autour de 'a' éléments (si je me souviens bien). –

Questions connexes