在上一个问题中,我询问了如何使用 json 文件使用 sweetalert2 填充输入选项。除此之外,我需要实现一个搜索引擎来过滤输入选项。在我使用的示例文件中,用户将有超过 8000 个选项可供选择,因此必须具有过滤器或搜索功能。
我认为这是创建另一个输入,用户可以在其中输入他/她想要的任何内容,然后“更改”与此相关的输入选项。请检查此图像:
该数据来自数据库,因此,另一种选择是执行 mysql 查询,在其中我使用like命令过滤参数,但是,由于数据已经(或应该已经)下载,我认为这样做会更有效在本地过滤此数据。虽然,数据库查询非常快。(问题1:我是对的?)
因此,引发 sweetalert 模态的代码是:
$(function(){
$("#taginfo").click(function(){
console.log("click on tag info");
swal({
title: 'Select Tag',
html: '<input id="swal-input1" class="swal2-input">',
input: 'select',
inputOptions: inputOptionsPromise,
inputPlaceholder: 'Select tag',
showCancelButton: true,
inputValidator: function (value) {
return new Promise(function (resolve, reject) {
if (value != '') {
document.getElementById('taginfo').value = value;
resolve();
}else {
reject('You need to select one tag')
}
})
}
}).then(function (result) {
swal({
type: 'success',
html: 'You selected: ' + result
})
})
});
});
我正在使用以下代码收集数据:
var inputOptionsPromise = new Promise(function (resolve) {
setTimeout(function () {
//place options here
console.log("options promise");
$.getJSON("/resources/tags.json", function(data) {
console.log(data);
resolve(data)
});
}, 2000)
})
问题2:如何过滤数据?