表单未更新动态html表的行数

时间:2018-10-26 11:00:27

标签: javascript php html mysql

我有一个仪表板php页面,其中包含来自mysql数据库的动态记录表,分页为每页1000个。我添加了一个带有一些选项的选择下拉菜单,供用户更新显示的行数。选择具有JavaScript代码以自动提交表单onchange。

表单页面:

    message:{},
    recipient: {},
    sender: {},
    account_linking: {status: 'linked'}
    timestamp: 1231234123

该页面应以该表的每页默认行数1000加载,然后在将select更改为100时更新,仅加载100条记录。它当前根本不显示任何记录,但是当我删除选择时,它将加载默认值。我的猜测是,我的代码处理量不正确吗?

2 个答案:

答案 0 :(得分:2)

尝试像这样默认分配:

$perpage = isset($_GET['amount']) ? $_GET['amount'] : 1000;

当前,您首先基于GET值进行设置,然后在下一行覆盖它。这样可以检查它是否在URL中,如果不是,则使用默认值。

然后将该金额添加到您的分页链接中。例如,更改:

<li class="page-item"><a class="page-link" href="? 
 page=<?php echo $nextPage ?>"><?php echo $nextPage ?></a></li>

<li class="page-item"><a class="page-link" href="? 
 page=<?= $nextPage ?>&amount=<?= $perpage ?>"><?= $nextPage ?></a></li>

此外,您的表单为POST,但是select没有名称,因此不会发布任何值。另外,您检查$_GET。因此,我们需要先调整选择:

 <select id="amount" name="amount" class="form-control" 
onchange="this.form.submit()">

但是,这现在意味着您需要检查POST以获取分页链接的select和GET信息。因此,我们现在需要检查:

// first check URL
if (isset($_GET['amount'])) {
    $perpage = $_GET['amount'];
}
// Now check form
if (isset($_POST['amount'])) {
    $perpage = $_POST['amount'];
}
// if nothing set, default:
if(!isset($perpage)) {
    $perpage = 1000;
}

答案 1 :(得分:0)

问题是由Bootstrap随附的数据表插件引起的。我要做的就是将dataTable类添加到表中,一切正常。