一,前端代碼:
<tdclass="am-text-middleedit_up"attr_url="{:U('site_order')}"attr_id="{$item.category_id}">
二.通過jq 加載html
$(".edit_up").each(function(){
varid=$(this).attr('attr_id');//獲取提交的id
varurl=$(this).attr('attr_url');//獲取提交地址
varhtml='<aclass="am-btnam-btn-smam-btn-defaultam-radius"title="點擊向上移動"onclick="edit_order(this,\''+id+'\',\''+url+'\')"attr-to="up"><spanclass="am-icon-arrow-up"></span></a><aclass="am-btnam-btn-smam-btn-defaultam-radius"title="點擊向下移動"onclick="edit_order(this,\''+id+'\',\''+url+'\')"attr-to="down"><spanclass="am-icon-arrow-down"></span></a>';
$(this).html(html);
});
前端是樣式如圖(具體樣式自定):
三.Jq提交后臺并改變列表的順序
functionedit_order(obj,t,id,url){
varto=$(obj).attr("attr-to");//獲取是向上還是向下
varurl=url+"?&i="+id+"&to="+to+"&ajaxedit=1";//提交地址;
varthat=$(obj)
$.ajax({
url:url,
cache:false,
success:function(val){
val=$.trim(val);
if(val>0){//后臺返回值
if(to=='down'&&val>0){
varpartentsDiv=that.parents('tr')//獲取父級
varnext=partentsDiv.next();//獲取父級下一個
if(next.html()!==undefined){
next.fadeOut('slow',function(){
$(this).after(partentsDiv);
}).fadeIn()
}else{//
layer.msg('到底了')//已經(jīng)當(dāng)前頁最后一個,這里如果有分頁可以通過刷新頁面改變數(shù)據(jù)
}
}else{
varparentDiv=that.parents('tr');//獲取父級
varprev=parentDiv.prev()//獲取父級上一個
if(prev.html()!==undefined){
prev.fadeOut('slow',function(){
$(this).before(parentDiv)
}).fadeIn()
}else{
layer.msg('到頂了')//已經(jīng)當(dāng)前頁第一個,這里如果有分頁可以通過刷新頁面改變數(shù)據(jù)
}
}
}else{
if(to=='down'){
layer.msg('到底了')//已經(jīng)是最后一個
}else{
layer.msg('到頂了')//已經(jīng)是第一個
}
}
}
});
}
點擊前:
點擊后,改變順序并且有個淡入淡出的效果
四、后臺改變數(shù)據(jù)的排序號,我的思路是保存的時候?qū)d 保存為排序號,通過對調(diào)二個排序號,來改變排序,
后臺代碼:
publicfunctionsite_order(){
$id=I('i');
$to=I('to');
$ModelObj=$this->ModelObj;
$old=$ModelObj->field('order_id,parent_id')->where(array('category_id'=>$id))->find();
if($to=='down'){
$new=$ModelObj->where(array('status'=>1,'parent_id'=>$old['parent_id'],'order_id'=>array('lt',$old['order_id'])))->order('order_iddesc')->find();
}
if($to=='up'){
$new=$ModelObj->field('order_id,category_id')->where(array('status'=>1,'parent_id'=>$old['parent_id'],'order_id'=>array('gt',$old['order_id'])))->order('order_id')->find();
}
if($new){
$ModelObj->where(array('category_id'=>$new['category_id']))->setField('order_id',$old['order_id']);
$res=$ModelObj->where(array('category_id'=>$id))->setField('order_id',$new['order_id']);
}
$this->ajaxReturn($res);
}
}
查找出當(dāng)向上或者向下的時候兩條數(shù)據(jù)的排序號對調(diào)一下就行
我的排序是從大到小排,
所有向下的時候,找出小于這個排序號數(shù)據(jù)中大的那個,
本文題目:前端開發(fā)之jq+php點擊上下按鈕修改排序
瀏覽路徑:http://www.rwnh.cn/news27/246377.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站制作、App設(shè)計
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)