Je suppose que votre affichage des résultats de recherche contient seulement un bloc de HTML pour les résultats de la recherche (comme une table ou Somesuch, pas une page HTML complète avec BODY)? Si ce n'est pas le cas, mettez à jour l'affichage afin qu'il ne contienne que le code pour les résultats. Ensuite, vous pouvez simplement utiliser le $.post method pour soumettre le formulaire obtenir la vue, puis l'injecter dans un DIV (ou élément de votre choix):
$(document).ready(function() {
$('#myformid').submit(function() {
var seralizedForm = $(this).serialize();
var url = $(this).attr('action');
$.post(url, serializedForm, function(results) {
$('#resultsDiv').html(results);
}, "html");
return false;
});
});
Cela devrait brancher votre code avec un minimum de modifications. Changez le "myformid" à un ID que vous avez placé sur l'étiquette de forme, et changez "resultsDiv" à l'identification d'un DIV vide que vous voulez que les résultats entrent.
Qu'est-ce que cela va faire est de lier cette fonction à appeler lorsque le formulaire est soumis (soit en appuyant sur entrer ou en cliquant sur un bouton d'envoi). Il va sérialiser le formulaire (de sorte que vous pouvez envoyer les valeurs des entrées à votre contrôleur) et obtenir l'URL à soumettre à l'attribut normal "action" que les formulaires ont.
Il soumettrons ensuite le formulaire à cette URL via un poste, et les résultats seront chargés dans un DIV avec l'ID de resultsDiv.
j'ai écrit à la fois contrôleur et vue, je suis coincé avec jquery/ajax – ant
Je mis à jour ma réponse avec un lien sur l'utilisation d'AJAX et jQuery. C'est bien comment vous avez deux noms d'utilisateur, btw. – GSto
J'étais à l'ordinateur de mes collègues à l'époque googler et rafraîchir la page, je ne savais pas qu'il était connecté. Et pourquoi serait-il bien d'avoir 2 noms d'utilisateur comme vous le dites "BTW". –