【问题标题】:Sort paginated table with mysql data使用 mysql 数据对分页表进行排序
【发布时间】:2014-11-30 22:49:55
【问题描述】:

我目前有一个用 mysql 数据填充的表,并且我有一些 jquery 代码来对数据进行分页。这很好用,但是,我也使用 jquery.tablesorter.min.js 对表格进行排序。这仅适用于第一页,一旦您更改页面,它只会对该页面上的数据进行排序,而不是对被拉入表中的所有数据进行排序。单击列标题时,我需要能够对所有数据进行排序,而不仅仅是该页面上由以下分页代码解析的数据:

表格排序器:

<script>
$(document).ready(function() {
 $("#sortedtable").tablesorter({ sortlist: [0,0] });
});
</script>

分页:

 <script type="text/javascript">
$(document).ready(function() {

//Declaring Variables

var page = 1;
var per_page = 20;
var items = $('.row').length;
var page_last = Math.ceil(items/per_page);

//Set Page  

function setPage(page) {
    $('.row').slice(0, page * per_page).hide();
    $('.row').slice(page * per_page - per_page, page * per_page).show();
    $('.row').slice(page * per_page).hide();
    $('#page_display').html('Page ' + page + ' of ' + page_last);
}

//Next Button

$('.next').click(function() {
    if (page < page_last) {
        page++;
        setPage(page);
    }   
});

//Previous Button

$('.prev').click(function() {
    if (page > 1) {
        page--;
        setPage(page);
    }   
});



setPage(1); 
});
</script> 

php/mysql

$cbsql = "SELECT patient_id, AES_DECRYPT(firstName,'$key') as firstName, AES_DECRYPT(lastName,'$key') as lastName, AES_DECRYPT(telephone1,'$key') as telephone1, AES_DECRYPT(email,'$key') as email, cbdate, status, owner FROM patientprofiles WHERE owner = '$owner' and cbdate <= '$today' AND cbdate != 0000-00-00 ORDER BY cbdate ASC";
$mycbData = mysql_query($cbsql,$con);

echo "<table id=sortedtable>
    <thead>\n<tr>
        <th>Date</th>
        <th>Patient</th>
        <th>Phone</th>
        <th>Email</th>
    </tr>\n</thead>\n"; 

while($record=mysql_fetch_array($mycbData)){

$mysql_cbdate = date('m/d/Y', strtotime($record['cbdate']));

echo "<tr class=row>";  
echo "<td>" .$mysql_cbdate. "</td>";
echo "<td>" .     stripslashes($record['lastName']) . ", " .$record['firstName'] . "</td>";
echo "<td>" .$record['telephone1']. "</td>";
echo "<td>" .$record['email']. "</td>";
echo "</tr>";
}
echo "</table>";
?>

免责声明我知道我应该使用 mysql,并且我会在这个项目完成后立即完成

【问题讨论】:

标签: php jquery mysql sorting pagination


【解决方案1】:

您应该使用 ajax 再次从服务器刷新数据或刷新同一页面。

使用 $.post 或 $.ajax(文档here)从服务器重新加载数据。

在 mysql 端,使用 LIMIT 进行分页。 “SELECT .... ORDER BY cbdate ASC LIMIT 50, 10;” 它告诉 mysql 跳过前 50 行并返回 10 后续行。

(文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多