排序功能实现 jQuery实现排序 上移 下移

效果

思路,

跟相邻元素,互换sort。

前提是每一个元素都有自己的sort值,不为零。

<tr id="{sh:$vo.id}">
                                    <td>
                                        <span onclick="up(this);" class="glyphicon glyphicon-arrow-up text-danger up" style="cursor: pointer;" title="上移" aria-hidden="true"></span>
                                        &nbsp;&nbsp;
                                        <span onclick="down(this);" class="glyphicon glyphicon-arrow-down text-danger down" style="cursor: pointer;" title="下移" aria-hidden="true"></span>
                                    </td>
                                    <td>
                                        <span title="{sh:$vo.user_id}">{sh:$vo.store_name}</span>
                                    </td>
                                    <td class="center"><a href="{sh:$vo.logo}" target="_blank"><img src="{sh:$vo.logo}" width='30px;'></td>
                                    <td class="center">{sh:$vo.category_name}</td>
                                    <td class="center edit">
                                        <a val="{sh:$vo.store_id}" onclick="view(this);" class="view btn btn-success" href="javascript:void(0);" title="查看">
                                            <i class="halflings-icon white zoom-in"></i>
                                        </a>
                                    </td>
                                </tr>

 

点击,触发up方法,down方法。

获取当前id。

通过jQuery,获取相邻的元素。

// 上移
function up(obj){
    var $tr = $(obj).parents("tr");
    if ($tr.index() != 0) {
        var current_id   = $tr.attr('id');
        var exchange_id   = $tr.prev("tr").attr('id');
        $.ajax({
            url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
            type: 'POST',
            data: 'current_id='+current_id+'&exchange_id='+exchange_id,
            success:function(json) {
                if (json == 1) {
                    $tr.fadeOut().fadeIn();
                    $tr.prev().before($tr);  
                    layer.msg('上移成功', {icon: 1});
                } else {
                    layer.msg('上移失败', {icon: 2});
                }
            }
        });
    }
}

// 下移
function down(obj) {
    var len = $(".down").length;
    var $tr = $(obj).parents("tr");
        if ($tr.index() != len - 1) { 
            var current_id   = $tr.attr('id');
            var exchange_id   = $tr.next("tr").attr('id');
            $.ajax({
                url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
                type: 'POST',
                data: 'current_id='+current_id+'&exchange_id='+exchange_id,
                success:function(json) {
                    if (json == 1) {
                        $tr.fadeOut().fadeIn();
                        $tr.next().after($tr);  
                        layer.msg('下移成功', {icon: 1});
                    } else {
                        layer.msg('下移失败', {icon: 2});
                    }
                }
            });
    } 
}

 

这里用到了几个jQuery方法,prev(),next(),before(),after()。以及效果,fadeOut(),fadeIn()。以及一些简单的逻辑判断和技巧。

php后台处理,

case 'exchange_sort':
                $mallShopModel = M('Mall_shop');
                $current_id   = $this->_post('current_id','trim');
                $exchange_id   = $this->_post('exchange_id','trim');
                $current_sort = $mallShopModel->where(array('id'=>$exchange_id))->getField('sort');
                $exchange_sort = $mallShopModel->where(array('id'=>$current_id))->getField('sort');
                
                $cdata['id']   = $current_id;
                $cdata['sort'] = $current_sort;
                $cres          = $mallShopModel->save($cdata);
                $edata['id']   = $exchange_id;
                $edata['sort']   = $exchange_sort;
                $eres          = $mallShopModel->save($edata);
                if ($cres !== FALSE && $eres !== FALSE){
                    exit('1');
                } else {
                    exit('2');
                }

 

转载于:https://www.cnblogs.com/jiqing9006/p/5088469.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值