2010-01-14 7 views
0

J'utilise codeigniter pour ce projet. J'ai un formulaire de recherche et les résultats du formulaire de recherche.récupérer les résultats de mysql en utilisant jquery/php/ajax

Maintenant, quand je clique sur la recherche dans le formulaire de recherche Je suis redirigés vers résultat de la recherche de la forme et j'obtenir des résultats.

Est-il possible de créer div ou une table sous forme de recherche qui est caché au premier appel, la procédure de recherche et qui en résulte, il revient à les récupérer dans la page sans la recharger?

En utilisant jquery/ajax/php? Merci

Répondre

2

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.

0

Oui, c'est possible.

pour CodeIgniter, j'écrire une fonction de contrôleur & vue de ce que vous souhaitez afficher. Ensuite, faites un appel AJAX à la page, qui sera ce que vous voulez afficher sur la page, et chargez-le sur la page en cours.

Si vous utilisez jQuery, vous pouvez regarder dans leur Various AJAX Functions pour faire l'appel ajax et de récupérer les données

+0

j'ai écrit à la fois contrôleur et vue, je suis coincé avec jquery/ajax – ant

+0

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

+0

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". –

Questions connexes