V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
444683462
V2EX  ›  问与答

拖拽排序的问题

  •  
  •   444683462 · 2016-07-04 20:53:23 +08:00 · 1066 次点击
    这是一个创建于 3096 天前的主题,其中的信息可能已经有所发展或是发生改变。

    逻辑我是按照这样的逻辑

    ajax 发送三个字段到后端

    每次获取当前要拖动元素的 id : startid

    拖动后元素位置的上一个或下一个兄弟元素的 id : endid

    isone:等于 0 就是移动到了第一行 否则就没有

        $startid=trim(I('get.startid'));
            $endid=trim(I('get.endid'));
            $isone=trim(I('get.isone')); //是否移动到了第一个  0 就是移动到了第一个
    
            $m=M('master_tips');
            $startsort=$m->where("mastertips_id =$startid")->getField("mastertips_sort");
            $endsort=$m->where("mastertips_id =$endid")->getField("mastertips_sort");
    
            if($isone==0) {
                $result = $m->where("mastertips_id = $startid")->setField("mastertips_sort", $endsort);
                $con['mastertips_id'] = array(array('egt', $endid), array('lt', $startid));
                $result2 = $m->where($con)->setInc("mastertips_sort", 1);
    
            }else if($startsort>$endsort){
                //基本正常
                $result=$m->where("mastertips_id = $startid")->setField("mastertips_sort",$endsort+1);
                $con['mastertips_id'] = array(array('gt', $endid), array('lt', $startid));
                $result2=$m->where($con)->setInc("mastertips_sort");
            }else{
    
                $result=$m->where("mastertips_id = $startid")->setField("mastertips_sort",$endsort);
                $con2['mastertips_id'] = array(array('gt', $startid), array('elt', $endid));
                $result2=$m->where($con2)->setDec("mastertips_sort");
            }
            ```
            
            这样逻辑对吗
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5190 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.