Php 数据表按编号排序字段
我有一列表示我的中的货币值,我如何才能正确地对这些值排序,因为dataTable仅按第一个数字排序,例如: 9000,00 8000,00 5.454.043,00 4.454.043,00 当然应该是这样的:Php 数据表按编号排序字段,php,jquery,datatable,Php,Jquery,Datatable,我有一列表示我的中的货币值,我如何才能正确地对这些值排序,因为dataTable仅按第一个数字排序,例如: 9000,00 8000,00 5.454.043,00 4.454.043,00 当然应该是这样的: while(!$res->EOF){ ... // post only the 3 <td> position <td style='text-align: right;'>".number_format($value,2,',','.')."
while(!$res->EOF){
... // post only the 3 <td> position
<td style='text-align: right;'>".number_format($value,2,',','.')."</td>
...
$res->MoveNext();
}
5.454.043,00
4.454.043,00
9000,00
8000,00
我正在使用number\u format
设置我的货币格式
php:
while(!$res->EOF){
... // post only the 3 <td> position
<td style='text-align: right;'>".number_format($value,2,',','.')."</td>
...
$res->MoveNext();
}
“.number\u格式($money,2,,,,,)。”
有什么问题,请便
谢谢
编辑:
while(!$res->EOF){
... // post only the 3 <td> position
<td style='text-align: right;'>".number_format($value,2,',','.')."</td>
...
$res->MoveNext();
}
作为@Mikhail的回答,试试这个,但是这个位置的列不再排序了
...
"aoColumnDefs": [
{ "sType": "numeric", "aTargets": [ 3 ] }
],
...
编辑2 再多一点代码: php:
while(!$res->EOF){
... // post only the 3 <td> position
<td style='text-align: right;'>".number_format($value,2,',','.')."</td>
...
$res->MoveNext();
}
while(!$res->EOF){
…//只张贴3个位置
.number_格式($value,2,,,,,,,)
...
$res->MoveNext();
}
js数据表
var oTable = $('#example').dataTable({
"bJQueryUI": true,
"sScrollY": "225px",
"sScrollX": "100%",
"sScrollXInner": "100%",
"bDestroy" : true,
"bScrollCollapse": true,
"aoColumnDefs": [
{ "sType": "numeric", "aTargets": [ 3 ] }
],
"sDom": '<"H"Tfr>t<"F"ip>',
"oTableTools": {
"sSwfPath": "js/DataTables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf",
"sRowSelect": "single",
"aButtons": [
{
"sExtends": "xls",
"sButtonText": "Excel"
},
{
"sExtends": "print",
"sButtonText": "Print"
}
]
},
"aaSorting": [[ 0, "asc" ]],
"bPaginate": false
});
var-oTable=$(“#示例”).dataTable({
“bJQueryUI”:没错,
“sScrollY”:“225px”,
“sScrollX”:“100%”,
“sScrollXInner”:“100%”,
是的,
“崩溃”:没错,
“aoColumnDefs”:[
{“sType”:“numeric”,“aTargets”:[3]}
],
“sDom”:“t”,
“可旋转工具”:{
“sSwfPath”:“js/DataTables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf”,
“sRowSelect”:“single”,
“阿布顿”:[
{
“性倾向”:“xls”,
“sButtonText”:“Excel”
},
{
“性倾向”:“打印”,
“sbuttonext”:“打印”
}
]
},
“aaSorting”:[[0,“asc”]],
“bPaginate”:错误
});
解决方案 我的解决方案是创建一个新列,该列的值不包含
number\u format
,就像隐藏一样。寻找别人的方式,我发现
现在,我可以格式化显示列中的任何内容。简而言之,您可以使用:
natsort($array);
您需要指定该列为“数字”
祝你好运 在看不到更多代码的情况下,很难准确地确定要做什么,但它之所以能像现在这样运行,似乎是由于
number\u格式
功能。这将返回一个字符串
,因此排序是正确的。在将其转换为字符串之前,需要执行排序。但要获得更深入的解释,您需要提供更深入的代码。您需要将字符串转换回float,您可以为此定义自己的数据类型(未测试):
如您所见,数字的转换是通过将字符串乘以1来实现的,它不知道逗号或用作小数分隔符以外的任何东西的点。yeap,但不起作用,不知道为什么,但列只是停止排序。将更新我的问题。其他列是否排序?你确定没有导致其他脚本无法执行的一般JS错误吗?没有,firebug中的aready测试,实际上排序发生了,但只有一行,所有其他的都停止了。好吧,我更新了代码,我只发布了几行,因为其他的事情我认为metter的代码不多。现在看一看,去掉数字_格式(正如我之前测试的那样),排序工作很完美,但这对我没有帮助。所以逗号是罪魁祸首?我认为“数字”可以处理这个问题。我会用逗号来代替句号,看起来它现在可以用了,可以做一些测试了。返回ReffTyes,见我的编辑,并考虑添加空细胞的情况。奇怪的是,他继续排序的第一个数字,如:第一:803.448,60秒,第二:68,00第三:461.404,58,第四:437.621,10。不知道我是否正确,但是,我只设置了现在测试的
{“sType”:“mynumeric”,“aTargets”:[3]}
应该可以工作,尽管我通常对日期进行设置。是否调用了比较函数?