Сортировка таблиц в PHP одним щелчком мыши - PullRequest
0 голосов
/ 22 июля 2011

Я хочу отсортировать свою таблицу, щелкнув заголовок моей таблицы, я уже выяснил, как это сделать здесь: Как отсортировать строки таблицы HTML, которые вызываются из MySQL

Однако мне интересно, есть ли что-то, что при повторном нажатии на эту кнопку сортировка будет выполнена в обратном порядке, а при третьем щелчке вернется в нормальное состояние и т. Д.

Ответы [ 6 ]

3 голосов
/ 22 июля 2011

Это можно сделать так:

switch($_GET['dir']){

  case "asc":
    $orderBy = " ORDER BY colName ASC"
    break;

  case "desc":
    $orderBy = " ORDER BY colName DESC"
    break;

  default:
    $orderBy = " ORDER BY colName ASC"
    break;
}

$sql = "SELECT FieldNames from MyTable" . $orderBy;

Затем вы просто предоставляете ссылку со строкой запроса, каждый раз меняющей элемент dir. Таким образом, ваша ссылка станет:

<a href="myFile.php?dir=asc">Order ascending</a> 

или

<a href="myFile.php?dir=desc">Order descending</a>

Надеюсь, это поможет.

2 голосов
/ 22 июля 2011

Что ж, если вы хотите только отсортировать таблицу, вам не нужно перезагружать страницу (что может быть относительно медленно) - есть варианты сделать это на стороне клиента с помощью JavaScript, то есть SortTable от Stuart Langridge

2 голосов
/ 22 июля 2011

Вы можете сделать это, отправив атрибут в URL sort=asc, sort=desc.А в php: if($_GET['sort']='asc') sort должен быть desc.Иначе сортировка должна быть asc.

www.example.com? Sort = asc

1 голос
/ 22 июля 2011

Рассмотрите возможность использования DataTables, это очень удобно.

0 голосов
/ 05 апреля 2013

Именно то, что вы хотите, здесь

https://stackoverflow.com/a/15827728/2220389

при первом нажатии ваша таблица будет отсортирована по возрастанию, при другом щелчке - по убыванию.

0 голосов
/ 22 июля 2011

Лучшим способом является изменение якоря в заголовке с помощью JS-ссылки:

if(/* current sorting is asc */) {
  document.write("<p>Type".link("mypage.php?sort=desc") + "</p>");
}else if(/* current sorting is desc */) {
  document.write("<p>Type".link("mypage.php?sort=normal") + "</p>");
}else if(/* current sorting is normal */){
  document.write("<p>Type".link("mypage.php?sort=asc") + "</p>");

Код PHP останется таким же, как и в предыдущем вопросе, который вы задали на SO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...