Comment dois-je faire à la table de tri à l'aide de CodeIgniter?

J'ai été le développement d'un site au cours des dernières semaines, à l'aide de CodeIgniter que le cadre. J'ai pensé à la meilleure façon d'accomplir quelque chose, qui dans beaucoup d'autres cadres dans d'autres langues est relativement simple: tableaux triables. CodeIgniter éteint les chaînes de requête par défaut, parce que votre Url contient les paramètres de la méthode. Si une URL comme:

/controller/method/param1/param2

Vous pourriez penser que vous pouvez simplement ajouter dans sortBy et sortOrder que deux autres paramètres à la méthode de contrôleur. Je n'ai pas particulièrement envie de faire cela, surtout parce que je veux avoir une ré-utilisable contrôleur. Lorsque vous utilisez des paramètres de chaîne de requête, PHP peut facilement vous dire si il y a un paramètre appelé sortBy. Toutefois, lorsque vous utilisez des URL en fonction des paramètres, elle varie avec chaque contrôleur.

Je me demandais ce que mes options. Aussi loin que je peux voir, ils sont quelque chose comme:

  • Passer dans mes sortBy et sortOrder paramètres, le sucer, et de développer des composants réutilisables.
  • Avoir un contrôleur supplémentaire, qui permet de stocker les sortBy et sortOrder dans la session (bien qu'il faut savoir d'où vous êtes venus, et vous renverra à la page d'origine).
  • Avoir une sorte de fonction AJAX, qui serait d'appeler le contrôleur ci-dessus; puis rechargez la page.
  • Hack CodeIgniter pour tourner les chaînes de requête de retour sur. En fait, si c'est la seule option, tous les liens à la façon de faire serait appréciée.

Je ne peux pas croire une telle tâche simple serait de présenter un tel problème! Ai-je raté quelque chose? Quelqu'un aurait-il des recommandations?


Modifier pour la clarification: j'aime jQuery, et je suis déjà sur le site, donc TableSorter est une bonne option. Cependant, je tiens à faire côté serveur le tri il y a quelques pages avec potentiellement un grand nombre de résultats, y compris la pagination.

OriginalL'auteur | 2008-09-22