gpt4 book ai didi

jquery-select2 - Select2 Ajax 不根据查询过滤结果

转载 作者:行者123 更新时间:2023-12-04 02:02:29 24 4
gpt4 key购买 nike

我是 Select2 的新手,在集成 AJAX 时遇到了问题。当我搜索时,不会根据查询过滤结果。

这是它的外观:http://i.imgur.com/dAPSSDH.png - 结果中正确的字符带有下划线,但没有过滤掉任何内容。在我的非 ajax Select2 和我见过的例子中,过滤似乎有点自动发生,所以我对编写自定义过滤器犹豫不决,因为可能已经内置了更好的过滤器。

这是我的代码:

<script>
$("#search_bar").select2({
placeholder: "Search for another Concept",
minimumInputLength: 1,
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
url: "/concepts/names_for_search",
dataType: 'json',
data: function (term, page) {
return {
q: term, // search term
page: page
};
},
results: function (data, page) {
return { results: data};
}
},
});
</script>

另外,这是我的 JSON 的一个示例:
[{"id":1,"text":"Limits"},{"id":2,"text":"Derivatives"},{"id":3,"text":"One-Sided Limits"},{"id":4,"text":"Formal Definition of a limit"}]

有任何想法吗?希望我只是在做一些愚蠢的事情,这是一个快速解决方案。在此先感谢您的帮助。

最佳答案

您需要在服务器端编写自定义过滤器来过滤结果。您在框中键入的内容保存在“term”中,然后“q”作为请求参数与 ajax 调用一起发送。所以ajax调用
url:"/concepts/names_for_search?q=deri"
应该只返回过滤的结果而不是所有的结果。

更新
每次您在搜索框中键入时,Select2 都会进行 AJAX 调用。您必须在服务器端过滤结果,然后根据搜索框中的文本返回结果。
我在我的 JSP/Servlet 应用程序中使用它,如下所示

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
{
String searchTerm = request.getParameter("q");

String json = getOptions(searchTerm);
//getOptions method will return a string of in JSON format
//[{"id":"1","name":"Derivatives"}]
response.getWriter().write(json);
}

您的 JavaScript 代码是正确的。

我发现使用 Select2 here .如果您打开链接 http://www.indiewebseries.com/search?q=indhttp://www.indiewebseries.com/search?q=in获得的结果是不同的,并且基于“q”参数。
在您的情况下,调用 url '/concepts/names_for_search?q=d' 和 '/concepts/names_for_search?q=deri' 的结果相同(即未过滤)

关于jquery-select2 - Select2 Ajax 不根据查询过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com