如何定义何时隐藏"显示更多"按钮?

时间:2014-08-13 07:44:13

标签: php jquery mysql ajax opencart

我有一个mysql产品表。

我有一个产品详情页面,其中用户有一个“显示更多”按钮,可以在页面上加载更多产品。 单击此按钮后,jQuery会计算页面上显示的产品数量(N),并向表格发出AJAX请求以获取20多个产品(N + 20)。

现在我应该在隐藏按钮时创建一个触发器。 我应该选择哪种触发器?定义没有产品的最佳方法是什么。

请帮助。

5 个答案:

答案 0 :(得分:0)

我猜有两种方法,

  1. 简单的方法是计算AJAX函数返回的响应行数。如果它小于20,则隐藏按钮..但是,如果您的记录编号是20的倍数,则最后一个响应中会出现毛刺,因为它不会隐藏按钮。

  2. 完美的方法是计算表中的记录数,然后将该数据保存在js变量中。然后将该变量值与您要求另一条记录的次数进行比较。如果它们具有相同的值,则隐藏该按钮,如果没有则显示该按钮。

答案 1 :(得分:0)

我不知道你是如何达到这个功能的,因为你没有共享代码,所以我不能给你最准确的帮助,只有这一个:

  • 加载页面并从DB检索第一个X行时,检索所有行的数量(与搜索条件匹配)
  • 使此计数对模板可见
  • 在jQuery中,计算已经加载了多少行
    • 这意味着,在页面开始时,您显示的是X行,总行数为Y,当前显示的行数为Z
    • 加载页面后,您需要比较if Z <= Y then不显示按钮else显示按钮
    • 如果显示按钮,我猜你正在听这个按钮上的click事件,然后执行你的AJAX请求,在成功完成AJAX之后,你需要Z += X并再次比较if Z > Y then hide the button

那应该是你的逻辑,现在把它变成你的代码。

答案 2 :(得分:0)

这取决于产品清单更新的频率。

如果产品数量经常变化(比如说,每天超过一次),我会对每个AJAX请求执行查询,检查我是否有更多项目(例如,检查N + 20&gt; = count(id)of products),并在回调上隐藏按钮。

否则,我只会将产品数量作为JS参数注入页面,每次点击都会对其进行验证(N + 20&lt; = count_products),并为自己节省一些AJAX \ SQL加载时间。

答案 3 :(得分:0)

您可以使用PHP获取所有行的计数并将其保存在隐藏字段或变量中,之后您可以测试(使用jquery)查看页面中当前的记录数(您已经在这样做了)然后用隐藏字段/变量中的数字测试它并显示/隐藏按钮

答案 4 :(得分:0)

最后我选择下一个变种:

我想加载更多20种产品。 在后端代码中,我将此数字切换为21。 那么在jQuery我只显示20但是我检查是否还有一个产品我不应该隐藏按钮。

那就是它。 无论如何,谢谢你们!