我正在使用数据表样式表,我用PHP填充。
除了包含amount的列外,一切正常。如果我点击这一列的datatable列标题为了按这一列对表进行排序它会排序,但只以文本而不是数字,这样20就会出现在3之前,等等。
在PHP中是否可以通过改变格式来防止这种情况?
示例单元格:
<td class="colAmount ralign"><?php echo number_format(doubleval($requests->amount), 2, ".", ","); ?></td>
如果我的数据库中的金额($requests->amount)是100000,那么上面将把它格式化为100,000.00,因为我需要用千位和小数分隔符来显示它——这可能被解释为文本。
提前谢谢你,蒂姆。您可以在SQL查询中添加以下内容:
ORDER BY YourField + 0
这将按数字顺序输出
您可以使用数据表的正交数据特性。这样,您就可以使用不同的格式进行显示和排序。这里有两种方法,我选择HTML 5样式,它使用data
属性(来自那里的示例):
<tr>
<td data-search="Tiger Nixon">T. Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td data-order="1303682400">Mon 25th Apr 11</td>
<td data-order="3120">$3,120/m</td>
</tr>
在本例中,最后两列的数据将使用data-order
属性进行排序。不需要进一步的配置,Datatables
应该自动检测这些属性