jQuery:使这比刷新更简单

时间:2010-09-26 10:28:14

标签: jquery

现在你可以通过点击链接来排序列表?sortMode = activity,?sortMode = comments。

我在想,我不能对列表进行排序,而网站没有刷新? (你知道当你点击一个链接吗?sortMode = comments,例如,你得刷新)。

sortMode只影响$ query,它选择WHERE type = activity等等。

我如何使这个更聪明,使用,所以它以某种方式更改$ query行,而没有什么是令人耳目一新的。也许这是不可能的,只是一个想法..另一种方式也许这样做?

6 个答案:

答案 0 :(得分:6)

您可以创建所有链接,而不是链接到页面,向您的页面调用AJAX请求,然后重新绘制列表。

示例(包含建议的编辑):

<a href="#" id="sort_activity">Sort by Activity</a>

$('#sort_activity').click(function(e){
    e.preventDefault();
    $('#your_list').load('/url/to/table #list', 'sortMode=activity');
});

jQuery .load()

如果您需要更多帮助,请在问题中添加详细信息,或对此答案发表评论。

答案 1 :(得分:1)

我会推荐一个名为Tablesorter 2.0的非常简洁的jQuery插件。我在我的2-3个项目中使用它。它在任何意义上都非常灵活,如果您真的参与AJAX,那么请查看他们的Appending Table Data with AJAX示例。

使用插件本身就像包含其javascript源一样简单,并将以下代码应用于您的表(假设它的id是myTable

$(document).ready(function() { 
    $("#myTable").tablesorter(); 
}); 

Tablesorter还支持所谓的Widgets,它可以让您进一步扩展默认功能,另外还有一个名为Pager的现成附加插件,可让您通过几个简单的步骤增加分页功能!

希望这适合您的项目;)

干杯!

答案 2 :(得分:0)

您的问题不是很清楚,特别是没有代码,但您可以将查询存储在cookie中,直到您想要运行它,因为可以在服务器和客户端设置/红色cookie吗?

答案 3 :(得分:0)

如果我理解你的问题...你试图在没有刷新页面的情况下执行查询并让它填充列表。

我建议调查AJAX。它是一种通过javascript执行服务器端脚本的方法,无需刷新页面。

如果您正在使用jQuery,请仔细查看内置的AJAX api。

Ajax非常适合使用XMLJSON等标记语言。

这是一个使用jquery和php的

ajax call

$.ajax({
   url: 'script.php',
   type: 'POST',
   timeout: 5000,
   data: "message=ajax",
   error: function()
   {
      alert("Request Failed");
   },
   success: function(response)
   {  
       //Dynamically populate select list here.


      //example alerts <b>Message:</b> ajax
      alert(response);
   }
});

的script.php

<?php
if($_POST['message']){
   echo "<b>Message:</b>" . $_POST['message'];
}
?>

使用这样的ajax调用,你可以在script.php中执行查询,并返回结果。我建议使用JSON来组织查询结果,这样可以更轻松地解析响应对象。

答案 4 :(得分:0)

如果您不需要在用户会话之间保持排序并且只是重新排序相同的内容(尽管您可以使用localStorage来保存列表顺序),那么Jquery Tablesorter插件是合适的。

http://tablesorter.com/docs/

答案 5 :(得分:0)

也许jQuery Ajaxy就是你的追求......