javascript - 加载所有数据后删除“加载更多”按钮
问题描述
我正在尝试使用一个按钮来使用 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>
解决方案
您要实现的目标通常是通过 ajax 调用完成的。因此,必须在每次异步加载后使用 javascript 检查 Load More 按钮的可见性。PHP 在服务器端运行一次,在将 HTML 文档发送到浏览器之前运行一次,在这种情况下根本没有帮助。
此外,您对所有行执行 sql 查询,然后再次使用 limit 执行此操作。仅仅为了获得所有记录的数量而运行两次相同的查询是低效的。
逻辑应该是加载 20 行,每行都应该有一个标识符。使用最后加载的行的标识符,您 ajax 请求接下来的 20 行等。如果来自 ajax 的响应数据为空,则隐藏“加载更多”按钮(或禁用它并将文本设置为“没有更多记录”之类的内容)。
推荐阅读
- arrays - 如何将此 JSON 对象转换为这种格式?
- github - GitHub 工作流程:每个不同的 git 操作(推送主服务器、推送标签......)
- python - Tkinter 画布不显示整个图像,一小部分被裁剪掉
- audio - map_channel 如何在 ffmpeg 中工作?
- python - 如何
使用python和beautifulsoup解析标签后的字符串(给定场景中的日期值) - c# - UWP 的 CollectionView GridItemsLayout 无法在发布应用程序上运行,除了使用自定义网格视图外,还有什么解决方法?
- javascript - 计算图Javascript上两点之间的交点
- python - 条形分组时显示条形值
- linux - How to hide part of unused variable at script startup
- java - Jackson XML deserialization skips field when using multiple useWrapping = false