整理一份拖拽排序自动保存的代码,后台是php

前端之家收集整理的这篇文章主要介绍了整理一份拖拽排序自动保存的代码,后台是php前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

    

        

            

            

            

            

        

        

            

            

            

            

        

    

PHP 

//拖拽

    public function tuozhuaiAction()

    {

        $yidongid = Request::post('yidongid');//移动的ID

        $tuozhuaistyle = Request::post('tuozhuaistyle');//拖拽的方式

        $yidongorder = Request::post('yidongorder');//移动ID要参考的排序数的ID

        $chengenum = Request::post('chengenum');//要修改数量

        $newid = Request::post('newid');//新排列

        $cankaoorder = $this->db->setTableName('content')->find($yidongorder);//参考的排序数

        $yidong = $this->db->setTableName('content')->find($yidongid);//参考的排序数

        if ($yidong['topstate'] == 1 && $cankaoorder['topstate'] == 1) {

            $data_be['topnum'] = $cankaoorder['topnum'];

            if ($yidong['topnum'] > $cankaoorder['topnum']) {

                $where = ' (topnum between ' . $cankaoorder['topnum'] . ' and ' . $yidong['topnum'] . ")and catid =" . $yidong['catid'];

            } else if ($yidong['topnum'] < $cankaoorder['topnum']) {

                $where = ' (topnum between ' . $yidong['topnum'] . ' and ' . $cankaoorder['topnum'] . ")and catid =" . $yidong['catid'];

            }

            $tuozhuai = $this->db->setTableName('content')->where($where)->getAll();//参考的排序数

            foreach ($tuozhuai as $v) {

                if ($v['id'] == $yidongid) {

                    $this->db->setTableName('content')->update(array('topnum' => $cankaoorder['topnum']),'id=?',$yidongid);

                } else {

                    if ($tuozhuaistyle == 1) {

                        $this->db->setTableName('content')->update(array('topnum' => $v['topnum'] + 1),$v['id']);

                        //向下拖拽

                    } else if ($tuozhuaistyle == 2) {

                        //向上拖拽

                        $this->db->setTableName('content')->update(array('topnum' => $v['topnum'] - 1),$v['id']);

                    }

                }

            }

        }

        if ($yidong['topstate'] == 0 && $cankaoorder['topstate'] == 0) {

            $data_be['listorder'] = $cankaoorder['listorder'];

            if ($yidong['listorder'] > $cankaoorder['listorder']) {

                $where = ' (listorder between ' . $cankaoorder['listorder'] . ' and ' . $yidong['listorder'] . ")and catid =" . $yidong['catid'];

            } else if ($yidong['listorder'] < $cankaoorder['listorder']) {

                $where = ' (listorder between ' . $yidong['listorder'] . ' and ' . $cankaoorder['listorder'] . ")and catid =" . $yidong['catid'];

            }

            $tuozhuai = $this->db->setTableName('content')->where($where)->getAll();//参考的排序数

            foreach ($tuozhuai as $v) {

                if ($v['id'] == $yidongid) {

                    $this->db->setTableName('content')->update($data_be,$yidongid);

                    continue;

                }

                if ($tuozhuaistyle == 1) {

                    $this->db->setTableName('content')->update(array('listorder' => $v['listorder'] + 1),$v['id']);

                    //向下拖拽

                } else if ($tuozhuaistyle == 2) {

                    //向上拖拽

                    $this->db->setTableName('content')->update(array('listorder' => $v['listorder'] - 1),$v['id']);

                }

            }

        }

    }

?>

思路仅供参考

猜你在找的PHP相关文章