ajax 点击列名排序,jQuery+Ajax实现表格数据不同列标题排序(为表格注入活力)

表格大家都十分熟悉,如今的CSS也使得表格的布局越来越光彩耀人。但是,无论如何,都掩饰不了那些包装下的死板。

那么如何让那些死板的数据 更具有可读性、可用性,能够让我们那些数据在“动”呢?

下面我们使用jquery+ajax 来为表格注入些活力。主要实现的目的就是:将表格的列标题转化为按钮,点击不同的列标题,便按相应的列对数据进行排序。比如学生信息表,我点击“生日”列,这张表便按生日排序将结果呈现在我们面前。使用ajax来调用本页也避免了刷新页面所带来的折磨。

下面我给出最基本的jsp页面

f37626ddf08febd0a2688fd9d38268a6.png 

详细代码如下

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'sorttable.jsp' starting page

TitleAuthorPublishDatePrice

JavaScript JavaScript Douglas Crockford May 2008$31.02 AJAX and PHP:Building Responsive Web Applications AJAX and PHP:Building Responsive Web ApplicationsCristian Darie,Mihak Bucica Mar 2006$31.02 Learning Mambo Learning MamboDouglas Paterson Mar 2006$31.02 Thinking in java Thinking in javaBruce Eckel Feb 2006$33.02 jQuery in Action, Second Edition jQuery in Action, Second EditionBear Bibeault / Yehuda Katz Apr 2010$35.02

第一步:为表格添加奇偶行交替背景

4a43e4924eaef383e86bb2cf79e27af4.png 

.even{

background-color: #E8A824;

}

.odd{

background-color:#74411B;

}

第二步:按字母排序

实现基于表格的Title列进行排序

Title

为Title定义了一个sort-alpha类

$(document).ready(function(){

var alternateRowColors = function($table){

$('tbody tr:odd',$table).removeClass('even').addClass('odd');

$('tbody tr:even',$table).removeClass('odd').addClass('even')

};

$('table.sorttable').each(function (){

var $table =$(this);

alternateRowColors($table);

$('th',$table).each(function(column){

var $header = $(this);

if($header.is('.sort-alpha')){

$header.addClass('clickable').hover(function(){

$header.addClass('hover');

},function(){

$header.removeClass('hover');

}).click(function(){

var rows = $table.find('tbody>tr').get();

rows.sort(function(a,b){

var keyA =$(a).children('td').eq(column).text().toUpperCase();

var keyB =$(b).children('td').eq(column).text().toUpperCase();

if(keyA

if(keyA>keyB) return 1;

return 0;

});

$.each(rows,function(index,row){

$table.children('tbody').append(row);

});

alternateRowColors($table);

});

}

});

});

});

最后

当你点击Title时

最终效果:

7d3a73f183d5513cc6a62ed27fe03fb0.png 

其他类型的排序如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基于 jQueryAjax 实现省市县三级联动的示例代码: HTML 代码: ```html <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JavaScript 代码: ```javascript $(function() { // 加载省份表 $.ajax({ url: 'province.php', type: 'GET', dataType: 'json', success: function(data) { $.each(data, function(index, province) { $('#province').append('<option value="' + province.id + '">' + province.name + '</option>'); }); } }); // 加载城市表 $('#province').change(function() { var provinceId = $(this).val(); if (provinceId != '') { $.ajax({ url: 'city.php', type: 'GET', dataType: 'json', data: {provinceId: provinceId}, success: function(data) { $('#city').empty().append('<option value="">请选择城市</option>'); $('#district').empty().append('<option value="">请选择区县</option>'); $.each(data, function(index, city) { $('#city').append('<option value="' + city.id + '">' + city.name + '</option>'); }); } }); } else { $('#city').empty().append('<option value="">请选择城市</option>'); $('#district').empty().append('<option value="">请选择区县</option>'); } }); // 加载区县表 $('#city').change(function() { var cityId = $(this).val(); if (cityId != '') { $.ajax({ url: 'district.php', type: 'GET', dataType: 'json', data: {cityId: cityId}, success: function(data) { $('#district').empty().append('<option value="">请选择区县</option>'); $.each(data, function(index, district) { $('#district').append('<option value="' + district.id + '">' + district.name + '</option>'); }); } }); } else { $('#district').empty().append('<option value="">请选择区县</option>'); } }); }); ``` 省份数据接口(province.php)返回 JSON 数据格式: ```json [ {"id": "110000", "name": "北京市"}, {"id": "120000", "name": "天津市"}, // 省份数据... ] ``` 城市数据接口(city.php)根据省份 ID 返回 JSON 数据格式: ```json [ {"id": "110100", "name": "北京市"}, {"id": "110200", "name": "县城市"}, // 城市数据... ] ``` 区县数据接口(district.php)根据城市 ID 返回 JSON 数据格式: ```json [ {"id": "110101", "name": "东城区"}, {"id": "110102", "name": "西城区"}, // 区县数据... ] ``` 以上是一个简单的 jQueryAjax 实现省市县三级联动的示例代码,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值