2010-11-10 9 views
2

J'ai quelques questions à propos de jQuery et de la fonction load().load() dans jQuery

J'ai un formulaire qui envoie 3 params qui sont nécessaires pour une requête. Je voulais charger les données à un div spécifié sans recharger une page donc j'ai essayé avec la fonction load dans jQuery. Cela semble correct mais il y a des questions que je dois poser.

J'ai créé un div avec l'identifiant "response" que je vais utiliser pour charger les données. J'ai fait quelque chose comme ceci:

$(document).ready(function() { 
    $("#response").load(("search.php?param1=1&param2=2&param3=3$search=send")) 
}); 

Et cela fonctionne très bien. Mais j'ai essayé de le faire dans une fonction

function search() { 
    $("#response").load(("search.php?param1=1&param2=2&param3=3$search=send")) 
} 

et ensuite l'utiliser quand dom tree est prêt. La requête a renvoyé ce que je voulais, mais sur la nouvelle page. Eh bien, pendant l'écriture que j'ai essayé d'utiliser return false qui devrait bloquer la page et l'empêcher de recharger (je me trompe ici?).

Lorsque le return false statment est dans la fonction de recherche et la fonction est utilisée

$(document).ready(function() { 
    search(); 
}) 

il ne fonctionne pas. Mais quand je place une déclaration de retour après l'appel search(), cela fonctionne comme il se doit. Quelqu'un peut-il me dire pourquoi? Ensuite, je me demandais s'il y avait une chance de faire la même chose en utilisant la fonction ajax dans jQuery.

+0

Je ne comprends pas ce que vous essayez de faire une fois la page de recherche charges. Précisez s'il vous plaît. – hunter

+0

Afficher certains enregistrements de la base de données, toujours plus d'un enregistrement. – Allek

+0

Pourquoi est-il nécessaire de charger via AJAX la première fois? Ne pouvez-vous pas inclure les données lors du chargement de la page? –

Répondre

0

Je ne vais pas déboguer votre ancien code, mais je vais vous donner une solution de travail définitive.

// jQuery function 
(function($) { 
    $.fn.return_search = function() { 
     $.get('search.php?param1=1&param2=2&param3=3$search=send', function(data) { 
      $(this).html(data); 
     }); 
    }; 
})(jQuery); 

// Call 
$('#response').return_search(); 

Cela va créer un plug-in d'extension jQuery et vous pouvez l'appeler sur l'élément, vous voulez qu'il soit retourné dans.