【问题标题】:Table sort with Jquery使用 Jquery 进行表格排序
【发布时间】:2015-03-06 21:01:08
【问题描述】:

我已经尝试了其他线程的所有解决方案,但似乎没有什么对我有用。我正在尝试以递减的体重分数显示表格(这是我表格的最后一列)。

我编写了以下代码,它不适用于 PHP 提供的表格,但可以完美地用于 html 页面。

查看源代码:http://hidden.com/diversefund.php

它起作用的html页面:http://hidden.com/new.html

我正在使用数据库提供的表,所以这是一个问题。

我的 php 脚本中的重要代码行:

<style>
#form {
border: 5px solid violet;
}
input[type=submit] {padding:5px 15px; background:white; border:1px solid    blue;
cursor:pointer;
-webkit-border-radius: 5px;
 border-radius: 5px; }
 </style>

 <script type='text/javascript' src='http://code.jquery.com/jquery-compat-git.js'></script>

  <script type='text/javascript' src='//code.jquery.com/jquery-1.9.1.js'></script>


   <link rel="stylesheet" type="text/css" href="/css/result-light.css">

 <script type='text/javascript'>
$(window).load(function(){
var $tbody = $('table tbody');
$tbody.find('tr').sort(function (a, b) {
var tda = parseFloat($(a).find('td:eq(7)').text()); //the column to sort by
var tdb = parseFloat($(b).find('td:eq(7)').text()); //the column to sort by
// if a < b return 1
return tda < tdb ? 1
// else if a > b return -1
:
tda > tdb ? -1
// else they are equal - return 0    
:
0;
 }).appendTo($tbody);
 }); </script>

  $queryx1 = mysql_query("select * from analytics_divequ where aum >= '$aum1' AND fiveyr >= '$fiveyr1' AND oneyr >= '$lastyr1' ", $linkx); 
echo '<table cellpadding="5" border="1px" align="center" id="caltbl"><thead><tr><th><b>Mutual Fund Scheme</b></th><th><b>AUM</b></th><th><b>Last Year %</b></th><th><b>Two Years %</b></th><th><b>Three Years %</b></th><th><b>5 Years %</b></th><th><b>Weight Score</b></th></tr></thead><tbody>';
$i=1;
while ($row2x = mysql_fetch_array($queryx1)) {
$mfsc=$row2x['mfscheme'];
$aum=$row2x['aum'];
$fiveyr=$row2x['fiveyr'];
$lastyr=$row2x['oneyr'];
$threeyr=$row2x['threeyr'];
$twoyr=$row2x['twoyr'];
$wscore=(($aum*$aumc1)+($fiveyr*$fiveyrc1)+($lastyr*$oneyrc1))/100;
?>
<tr><td><? echo $mfsc ?></td><td><? echo $aum ?></td><td><? echo $lastyr ?></td><td><? echo $twoyr ?></td><td><? echo $threeyr ?></td><td><? echo $fiveyr ?></td><td class="sortnr"><? echo $wscore ?></td></tr>

echo '</tbody></table> <br>';
?>

另外补充一下,我这里不能使用 Mysql,你可以看到最后一列不是数据库的一部分。

【问题讨论】:

  • 如果您的脚本中显示任何错误..
  • 不,我没有看到错误@ABIRAMAN

标签: php jquery mysql


【解决方案1】:

你可以使用插件吗?

还是 PHP 来做你需要做的事?如果数据存储在数据库中,您可以使用不同的 MySQL 语句完成所需的任务,使用“ORDER BY”.. 或者创建一个新的 PHP 数组,该数组将包含正确顺序的数据,而不是使用循环显示数据。 (http://php.net/manual/en/function.usort.php)

对于表管理(排序、搜索等),我建议使用数据表 (https://datatables.net)。从上次我开始搜索,这是市场上最好的 jquery 表插件......但是,根据我的经验,数据表无法处理大量数据,一旦你有 1000 多行,可能需要 10-20 秒要加载的页面。

【讨论】:

  • 不能使用mysql order by command,因为最后一列是在运行时创建的,不是数据库的一部分。
  • 另外,如果你需要使用jquery:stackoverflow.com/questions/10543618/…
  • 我试过你提到的链接中的方法。它是一个救生员。非常感谢朋友。投票给你! :)
  • @AbhishekSingh,您可能还想了解 jQuery 插件 Tablesorter - 确保您使用 Mottie's fork。 Christian Bach 的原作多年未更新,与前叉相比非常简陋(而且有缺陷)。
【解决方案2】:

First Multi Dimensional 使用您的 Mysql 数据创建一个数组,并将您的最后一列值推送到该数组中。之后,您可以使用任何语言对该数组进行排序。如果您将该数组更改为 JSON,您可以轻松地使用 JQUERY 进行排序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多