我最近让DataTables为我做了排序和分页。我的表作为数组加载:
$table_fetch = $dbh->query("SELECT relname FROM pg_class, pg_namespace WHERE relnamespace = pg_namespace.oid AND nspname = 'schema' AND relkind = 'r'");
$tables = array();
while ($row_list = $table_fetch->fetch(PDO::FETCH_ASSOC))
{
$tables[] = $row_list['relname'];
}
他们会向用户显示下拉选项:
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" id="form">
<select name="table" onchange="this.form.submit()">
<option>Select a Table</option>
<?php
foreach ($tables as $table) {
echo "<option value='$table'>" . $table . " </option>";
}
?>
</select>
</form>
表格在提交后作为变量传递
if(isset($_POST['table'])){
$var_table = $_POST["table"];
$query = $dbh->prepare("select * FROM schema.".$var_table."");
然后像这样启动DataTables:
<script>
$(document).ready(function(){
$('#sortable').DataTable();
});
</script>
它正常工作,直到一个表达到11K +行并且DataTables无法正确加载它(它开始加载一个页面中的所有项目,没有排序和分页,但其他表格也可以)。所以我已经阅读了DataTables的服务器端脚本,并想知道如何将表作为变量传递并在他们提供的server_processing.php模板中加载项目。