layui 输入搜索下拉框带后台接口调用
时间: 2023-08-18 14:03:54 浏览: 118
好的,这里提供一个基于layui的输入搜索下拉框带后台接口调用的示例代码:
前端代码:
```html
<select xm-select="select1" xm-select-search="" xm-select-skin="default">
<option value="">请选择</option>
</select>
```
```javascript
layui.use(['form', 'jquery', 'xmSelect'], function () {
var $ = layui.jquery;
var form = layui.form;
var xmSelect = layui.xmSelect;
// 渲染下拉框
var select1 = xmSelect.render({
el: '[xm-select="select1"]',
name: 'select1',
layVerify: 'required',
searchTips: '请输入关键字搜索',
searchPlaceholder: '请输入关键字搜索',
filterable: true,
remoteSearch: true,
remoteMethod: function (val, cb, show) {
$.ajax({
type: 'GET',
url: '/api/search',
data: {
keyword: val
},
success: function (res) {
if (res.code === 0) {
var data = res.data;
var options = [];
for (var i = 0; i < data.length; i++) {
options.push({
name: data[i].name,
value: data[i].id
});
}
cb(options);
}
show();
},
error: function () {
show();
}
});
}
});
});
```
后端代码:
```java
@RestController
@RequestMapping("/api")
public class SearchController {
@GetMapping("/search")
public Result<List<Item>> search(@RequestParam("keyword") String keyword) {
// 处理查询逻辑,返回包含 name 和 id 的 Item 列表
}
}
```
其中,前端代码使用了layui提供的 `xmSelect` 组件,可以实现多选、搜索、分组等功能。后端代码中,`SearchController` 接收前端传过来的 `keyword` 参数,处理查询逻辑后返回包含 name 和 id 的 `Item` 列表。在前端的 `remoteMethod` 函数中,通过 AJAX 向后端发送请求,获取查询结果,将结果转换为 `options` 数组格式,调用 `cb(options)` 将结果返回给 `xmSelect` 组件渲染下拉框选项。
阅读全文