php怎麼調換頁面順序,php介面實現拖拽排序功能

2021-10-25 21:09:25 字數 1172 閱讀 7849

列表拖拽排序是乙個很常見的功能,但是後端介面如何處理卻是乙個令人糾結的問題

如何實現才能達到效率最高呢?

先分析乙個場景,假如有乙個頁面有十條資料,所謂的拖拽就是在這十條資料來來回回的拖,但是每次拖動都會影響到其他資料例如把最後一條拖到最前面,那麼後面九條就自動往後移,反之也是,嗯~~~

先想象一下,排序號是固定的,就好像有十把椅子,每個椅子都是固定在那裡的,移動的是上面的人,這樣就不會影響到其他頁面的資料了而且每個人換的也是之前其他人的桌椅號碼,這樣也不用去想到底要加多少才能排在**。

介面設計:

//$ids 這十條資料的id集合,逗號隔開的字串

//$oldindex 原始位置,從0開始算

//$newindex 要拖動的位置

function dragsort($ids,$oldindex,$newindex)

//保證查詢出來的資料跟前臺提交的順序一致,這裡要order by field

//id 主鍵 sort 排序值

$sql = "select id,sort from 表名字 where id in ($ids) order by field(id, " . $ids . ") ";

$list = "這裡省略,就是去資料庫找嘛";

//id集合

$idarr = ;

//排序集合

$sortarr = ;

foreach ($list as $item) {

$idarr = $item['id'];

$sortarr = $item['sort'];

//記錄要拖動的id

$oldvalue = $idarr[$oldindex];

//刪除這個要拖動的id

unset($idarr[$oldindex]);

//插入新的位置,並自動移位

array_splice($idarr, $newindex, 0, $oldvalue);

//重新設定排序

$set = ;

for ($i = 0; $i < count($idarr); $i++) {

$set[$i]['id'] = $idarr[$i];

$set[$i]['sort'] = $sortarr[$i];

//儲存到資料庫省略

總結

PHP 根據傳參不同切換頁面

如下圖 服務管理和 站要顯示不同的列表資料,但是樣式基本相同,就不用寫兩個頁面了,只需要在頁面跳轉的時候攜帶不同引數,查詢相對應的資料,對樣式的不同之處判斷顯示即可 這是跳轉頁面的 我攜帶的引數分別是 all 和 deleted 選中樣式也要判斷 all 服務管理 新增服務 deleted targ...

PHP怎麼實現頁面重定向?

php怎麼實現頁面重定向?方法一 header頭部重定向 url if isset url else方法二 js指令碼重定向 url if isset url else方法三 html標記重定向 url if isset url exit 函式輸出一條訊息,並退出當前指令碼。如果 status 是字...

在php頁面如何呼叫介面,php如何呼叫api介面

通過php模擬post請求即可呼叫。推薦 php伺服器 php模擬post提交的2種方法 1 通過curl函式 php中使用curl實現get和post請求的方法 post data array post data clientname test08 post data clientpasswd t...