【问题标题】:How to browse every 10 records using MYSQL and jquery ajax calls如何使用 MYSQL 和 jquery ajax 调用浏览每 10 条记录
【发布时间】:2010-11-24 21:49:23
【问题描述】:

您好,我想通过点击浏览每 10 条记录。当单击下一个或上一个时,AJAX 调用应该从 SQL QUERY 中获取接下来的 10 条记录。在初始页面,我有一个获取 10 条记录的 SQL QUERY

SELECT VENUENAME FROM VENUES LIMIT 10

<a style="float:right" id="next-nav" href="#">Next</a>


$("#next-nav").click(function(){
 $("#hidNavigation").val(parseInt($("#hidNavigation").val()) + 1);
 $.ajax({
  type: "POST",
  url: "loaddynamic.cfm?template=mapresults&startrow=" +  $("#hidNavigation").val(),
  cache: false,
  dataType: "json",
  success: function(data){
   //show venues

  }  
 });
});

我在 AJAX 页面中使用的查询是

SELECT VENUENAME FROM VENUES LIMIT startrow, 10

我希望获取的记录是唯一的,并且当链接(上一个/下一个)位于最后一条记录的开始/结束时,它也不能点击。请帮我。 我正在使用 MYSQL DB 和 jquery。

【问题讨论】:

    标签: javascript jquery ajax mysql


    【解决方案1】:

    您的查询应该如下所示:

    SELECT VENUENAME FROM VENUES ORDER BY VENUENAME LIMIT numrows OFFSET startrow
    

    确保参数化查询,以便 startrow 作为占位符传入。另外,我添加了 ORDER BY 子句,然后将 VENUENAME 放入...您可能需要 ID,但您几乎肯定需要某种排序。

    要使链接不可点击,您需要获取行数,以便确定总页数。

    SELECT COUNT(*) FROM VENUES
    

    为了处理 UI 元素,我会使用 jQuery 分页器插件而不是尝试自己滚动:http://github.com/jonpauldavies/jquery-pager-plugin/tree/master

    【讨论】:

    • SELECT VENUENAME FROM VENUES ORDER BY VENUENAME LIMIT 10 OFFSET startrow 查询是针对 AJAX 页面吗?并且不需要更改主页的查询?我在 AJAX 页面中使用了您的查询,但它仍然是一样的,我可以看到重复的记录。 :(
    • 发生的情况是它只移动一条记录,我的意思是当我点击下一条记录时第一条记录消失/移动,而它应该移动 10 条记录。例如:第一组出现 A、B、C、D、E、F、G、H、I、J,当我点击下一个时,它显示 B、C、D、E、F、G、H、I、J、K
    • 这是因为您在每次点击时仅将 #hidNavigation 的值增加 1。因此,当您单击时,您的 startrow 值为 1、2、3 等。在您的 js 函数的第一行中,将 + 1 更改为 + 10。我真的建议您查看 jQuery 分页器插件,它可以让您不必担心分页的繁琐细节。
    • 感谢一百万戴夫,我肯定会使用 jQuery 寻呼机插件
    【解决方案2】:

    不能使链接不可点击。您可以做的是隐藏它们并用静态文本替换它们,或者您可以捕获会使您超出点击处理程序功能范围的点击。对于“上一个”链接,您可以通过验证 #hidNavigation 的值是否大于 0 来做到这一点。要确定您是否位于列表末尾,您首先必须查询可用场所的数量像这样:

    SELECT COUNT(*) FROM VENUS;
    

    在客户端获得该信息后,如果(在伪代码中)(#hidNavigation+1)*10 >= 场所数量,请禁用“下一个”链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多