我試圖使用jQuery的TableSorter插件,來排序的,我通過查詢與PHP MySQL數據庫創建書一表。變化的tablesorter排序標準
該表最初由MySQL引擎(查詢中的ORDER BY Book.Title
)按標題排序,然後用戶可以通過TableSorter以不同方式對錶進行排序(頁數,作者姓名,出版日期,& c )。
的事情是,有些書必須以數字開頭的名稱(如「1984」或「20.000聯盟在海」)。在任何以字母開頭的其他書籍之前,MySQL會將這些書放在最前面。我有這個沒有爭吵,但一個奇怪的「錯誤」(不是一個真正的錯誤也許)用的tablesorter出現:它只是排序起始號,標題(從表中的beggining到底換擋它們),留下其餘的(和絕大多數)的訂單不變。我認爲我已經查明瞭問題的根源,但還找不到(真實的)解決方案:
看起來TableSorter只看第一行以確定列的類型並將其視爲因爲第一個元素是一個標題以數字開頭的書,所以它忽略了任何以字母字符開頭的單元格。如果我扭轉了原來的排序順序(改變MySQL查詢結局ORDER BY Book.Title DESC
),那麼第一個元素是一本書開頭字母(Z或最近的一個),的tablesorter認爲它是字母數字列並對其排序,就好了,但隨後桌子呈現給用戶一種不尋常和尷尬的順序。
對於那些誰有同樣的問題(我不認爲我碰到這第一個,但我無法找到與這個「錯誤」的任何信息,也沒有辦法解決它) ,我設法想出速戰速決:把一個隱藏的行第一,迫使每列的分類標準,以正確的,就像這樣:
<tr>
<td class = "row-hidden">ABC</td> <!-- Title -->
<td class = "row-hidden">ABC</td> <!-- Subtitle -->
<td class = "row-hidden">ABC</td> <!-- Author -->
<td class = "row-hidden">123</td> <!-- Pages -->
<td class = "row-hidden">123</td> <!-- Quotes -->
<td class = "row-hidden">01/01/1970</td> <!-- Publication Date -->
<td class = "row-hidden"></td> <!-- No Sorting Required -->
</tr>
但是,這僅僅是一個旁路,我想知道是否有到解決實際問題的一種方式,基本上問題是這樣的:有(通過jQuery)手動從而重寫什麼解析器自動決定辦法迫使/設置任何給定的列的排序標準??