排序设计

方式1:列表数据特别多,需要分页处理的,通过手录入排序号
排序设计
方式二:列表数据少,不需要分页处理的。设计:新增时后台自动将排序号设置成自增ID值,新增/修改界面不显示排序。通过上下拖动实现排序
排序设计
排序逻辑:排序完成后,点保存排序按钮,将所有记录的ID按排序后的先后顺序提交后端如ID:1,5,19,3,7,2,10.先将所有记录的排序升序取出来,依次赋值给ID

$idsString = implode(",", $ids);
$sortArr = $model->getListSortFromId($idsString);
foreach ($ids as $key => $id) {
    $data = [ 'sort' => $sortArr[$key] ];
    $model->updateInfoByPk($data, $id);
}

public function getListSortFromId($ids)
{
    $result = [];

    $sql = "SELECT sort FROM {$this->tableName} WHERE id in ($ids) ORDER BY sort ASC;";
    $list = $this->conn->fetchAll($sql);
    foreach ($list as $info) {
        $result[] = $info['sort'];
    }

    return $result;
}

相关推荐