- A+
所属分类:Web前端
使用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']
后端接收的查询结果已经变化,再进行字符串转换处理,得到真正的搜索选项。