2009-09-02 24 views
1

嗨,我想浏览点击每10条记录。单击下一个或上一个时,AJAX调用应从SQL QUERY中获取每条记录的下10条记录。在初始页我有一个SQL查询,该查询获取10条如何浏览使用MYSQL和jquery ajax调用的每10条记录

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 

我想提取的记录是唯一的,也是使链接( prev/next)在最后一个记录的开始/结束时不可点击。请帮帮我。 我正在使用MYSQL数据库和jQuery。

回答

2

您的查询应该像这样:

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

+0

SELECT VENUENAME FROM场馆ORDER BY VENUENAME LIMIT 10 OFFSET STARTROW的查询是针对AJAX页?并且不需要更改主页面的查询?我在AJAX页面中使用了你的查询,但它仍然是一样的,我可以看到重复的记录。 ( – nash 2009-09-02 11:06:35

+0

)会发生什么,它只是移动一个记录,我的意思是第一个记录消失/移动,当我打下一个,而它应该移动10个记录例如:第一组出现A,B,C,D,E,F,G ,H,I,J,当我点击它时显示B,C,D,E,F,G,H,I,J,K – nash 2009-09-02 11:16:27

+0

这是因为你每次点击只会增加#hidNavigation的值1 。所以,当你点击的时候,你的startrow的值是1,2,3等。在你的js函数的第一行中,将+ 1改为+10。 我真的建议看一看jQuery pager插件,这应该让你不必担心分页的毛毛细节。 – 2009-09-02 11:40:35

0

链接不能被禁止点击。你可以做的就是隐藏它们并用静态文本替换它们,或者你可以捕捉点击,这会让你在点击处理函数中出界。对于'上一个'链接,可以通过验证#hidNavigation的值大于0来实现。要查明您是否在列表的末尾,首先必须查询可用场地的数量像这样:

SELECT COUNT(*) FROM VENUS; 

一旦你的客户端上的信息,禁用 '下一步' 链接,如果(在伪代码)(#hidNavigation + 1)* 10> =数场地。