Ich habe in den letzten Wochen eine Website mit CodeIgniter als Framework entwickelt. Ich habe über den besten Weg nachgedacht, etwas zu erreichen, was in vielen anderen Frameworks in anderen Sprachen relativ einfach ist: sortierbare Tabellen. CodeIgniter schaltet Abfragezeichenfolgen standardmäßig aus, da Ihre URLs Methodenparameter enthalten. So könnte eine URL wie folgt aussehen:
%Vor% Sie könnten denken, dass Sie einfach in sortBy
und sortOrder
als zwei zusätzliche Parameter zur Controller-Methode hinzufügen können. Ich möchte das nicht unbedingt machen, hauptsächlich weil ich einen wiederverwendbaren Controller haben möchte. Wenn Sie Abfrage-String-Parameter verwenden, kann PHP Ihnen leicht sagen, ob es einen Parameter namens sortBy
gibt. Wenn Sie jedoch URL-basierte Parameter verwenden, variiert dieser Wert je nach Controller.
Ich habe mich gefragt, was meine Möglichkeiten sind. Soweit ich sehen kann, sind sie so etwas wie:
sortBy
und sortOrder
, saugen Sie sie einfach auf und entwickeln Sie eine weniger als wiederverwendbare Komponente dafür. sortBy
und sortOrder
in der Sitzung speichert (obwohl er wissen müsste, woher Sie kommen und Sie zurück zur ursprünglichen Seite schicken). Ich kann einfach nicht glauben, dass solch eine einfache Aufgabe ein solches Problem darstellen würde! Fehle ich etwas? Hat jemand irgendwelche Empfehlungen?
Zur Klarstellung bearbeiten: Ich liebe jQuery, und ich verwende es bereits auf der Website, daher ist TableSorter eine gute Option. Ich möchte jedoch serverseitige Sortierung durchführen, da einige Seiten potenziell große Anzahl von Ergebnissen, einschließlich Paginierung, enthalten.
Wenn Sie mit der Sortierung auf der Clientseite einverstanden sind, ist das Tablesorter-Plugin für jQuery ziemlich gut.
Ich habe das mit einem ziemlich komplexen Tisch erfahren. Der schwierige Teil war, dass die Tabelle abhängig von bestimmten Variablen wachsen / schrumpfen konnte !! Großer Schmerz: (
So habe ich es gehandhabt.
Angepasstes System / application / config / config.php um das Kommazeichen in der URI zuzulassen:
%Vor%Stelle meinen Controller mit einer Sortierfunktion ein:
%Vor%Ich habe es vereinfacht, aber Sie bekommen die Idee. Der Zweck ist, eine URL wie folgt zu haben:
/ Controller / Sortierer / Spaltenname, Sortierreihenfolge
Die Sortierfunktion ruft eine andere interne Funktion auf, um mit der Anzeige- / Schablonen- / Ansichtslogik umzugehen - Aufgabe ist es, mit dem Sortieraufruf umzugehen und die entsprechenden Daten aus dem Modell zu erhalten.
Natürlich könnte dies nur auf Ihre aktuelle Funktion reduziert werden:
%Vor%Auf diese Weise brauchen Sie nicht einmal eine separate Funktion - und können mit dem dritten Segment Ihre Sortierung definieren.
Ich habe das verwendet: Ссылка
von net.tutsplus.com
Leider verwendet es, was Sie nicht mögen (/ controller / method / param1 / param2), aber ich habe dies (die Anzeigefunktion) für jeden Controller hinzugefügt, wenn ich Paginierung brauche. Oder machen Sie einen Helfer daraus.
Ein anderes Beispiel ist hier: Ссылка
Ich habe kürzlich diesen Table Sorter (der Prototype verwendet) zu einem Haufen hinzugefügt meiner Seiten. Es ist schnell und ziemlich einfach zu implementieren.
Tags und Links php codeigniter sorting sortable-tables