加载所有数据后,删除“加载更多”按钮

时间:2019-04-24 20:39:06

标签: javascript php

我正在尝试使用一个按钮通过PHP从数据库中加载更多数据。 到现在为止,我可以计算结果和显示的结果。 因此,当$ count == $ countAll时,所有结果通常都会显示。

有人可以解释为什么这不起作用吗?

// Count all results
$allResults = $conn->prepare("SELECT*FROM tl_picture WHERE text LIKE '%$innerhtml%' ORDER BY id DESC");
$allResults->execute();
$countAll =$allResults->rowCount();
echo "Found results: ".$countAll."<br>";

//max 20 results showing
$statement = $conn->prepare("SELECT*FROM tl_picture WHERE text LIKE '%$innerhtml%' ORDER BY id DESC  limit 20");
$statement->execute();
$collection = $statement->fetchAll();
$count =$statement->rowCount();
echo "viewable results: ". $count;
<script>
<?php if($count==$countAll): ?>
        document.GetElementById('loadButton').style.display='none';
    } else {
        document.GetElementById('loadButton').style.display='block';
    }
    <?php endif; ?>
</script>

2 个答案:

答案 0 :(得分:0)

您通常想通过ajax调用来实现。因此,每次异步加载后,都必须使用javascript检查“加载更多”按钮的可见性。将PHP文档发送到浏览器之前,PHP在服务器端运行一次,在这种情况下完全没有帮助。

还可以对所有行执行sql查询,然后在限制时间内再次执行。为了获得所有记录的数量,对同一查询运行两次是低效率的。

逻辑应该是加载20行,并且每行应具有一个标识符。使用最后加载的行的标识符,ajax请求接下来的20行,等等。如果来自ajax的响应数据为空,则隐藏“加载更多”按钮(或禁用它,并将文本设置为“无更多记录”)。

答案 1 :(得分:0)

此脚本可能有错误:

<script>
    <?php if($count==$countAll): ?>
        document.GetElementById('loadButton').style.display='none';
    } else {
        document.GetElementById('loadButton').style.display='block';
    }
    <?php endif; ?>
</script>

您可以将其更改为类似于:

<script>
    <?php if($count==$countAll): ?>
        document.GetElementById('loadButton').style.display='none';
    <?php } else { ?>
        document.GetElementById('loadButton').style.display='block';
    <?php endif; ?>
</script>

问题可能是您的} else {使用JavaScript,但可能没有if吗?