2011-07-22 7 views
0

を逆に、私はすでにここにいることを行う方法を考え出した:How to sort rows of HTML table that are called from MySQLPHPのソートテーブルが並べ替え私は私のテーブルのヘッダをクリックすることで、私のテーブルをソートしたい

私は疑問に思ってしかし、ありますそのボタンでもう一度クリックすると、ソートは逆になり、3回目をクリックすると通常に戻ります。

+0

クエリの順序を調整するブール値のGET/POST変数を設定します。ブール値に応じてlink/submitを動的に設定します。 – Josh

答えて

3

これは次のように行うことができます。

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

URLに属性を送信すると、sort=ascsort=descとすることができます。そして、PHPでif($_GET['sort']='asc')ソートはdescでなければなりません。他の並べ替えはascである必要があります。

www.example.com?sort=asc

0

最良の方法は、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に尋ねました。

2

さて、あなただけのテーブルをソートする場合、あなたは(比較的遅いかもしれません)ページをリロードする必要はありません - それをJavaScriptを使用してクライアント側を行うためのオプションがあり、すなわちSortTable by Stuart Langridge

1

検討しDataTablesを使用すると、非常に便利です。降順 -

正確に何をしたい
関連する問題