使用Layui table重載時,發現如果前端多選,減少選項,后台接收的參數不會變化,使用的還是之前的搜索條件。
//執行重載
table.reload('UserTable', {
page: {
curr: 1 //重新從第 1 頁開始
},
where: {
key: {
name: searchName.val(),
selected_position:position.getValue('value'),
}
},
}
- 前端第一次查詢選擇參數:
后端接收: 'key[selected_position][]': ['7', '8']
- 第二次查詢:
后端接收:'key[selected_position][]': ['7', '8']
具體問題原因未知,參考了網上的解決方案:https://blog.csdn.net/zhuxun_why/article/details/105640387
考慮把多選的數組轉換為字符串,然后交給后台進行接收,這樣就和普通的搜索框,內容一旦有變化就會更新。調整代碼:
table.reload('UserTable', { page: { curr: 1 //重新從第 1 頁開始 }, where: { key: { name: searchName.val(), selected_position:position.getValue('value').toString(),
}
},
}
第一次查詢結果:'key[selected_position]': ['7,8']
第二次查詢結果:'key[selected_position]': ['7']
后端接收的查詢結果已經變化,再進行字符串轉換處理,得到真正的搜索選項。