jquery自动完成渲染问题

发布于 2025-01-05 19:07:37 字数 1530 浏览 2 评论 0原文

我试图通过 servlet 接收数据来实现 jQuery 自动完成插件。 该脚本有效,并且确实从 servlet 中提取结果,但我无法让它在下拉菜单中正确呈现。假设我在搜索栏中写“hel”,自动完成下拉列表是:

h
e
l
l
o

根据我的理解,自动完成插件应该接收一个数组,我认为这可能是问题所在。 这是我的 javascript 代码:

<script>
function getFilteredNames(request, response){

    $.ajax({
        type: "POST",
        url: "../servlet/Autocomplete", 
        data: request,
        success: function(data) {
            response(data);
        }
    });
}

$(document).ready(function(){
        $("#buscar").autocomplete({ source : getFilteredNames, minLength: 3}); 
});
</script>

这是 servlet 代码的一部分:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        try {
            String query = request.getParameter("term");
            List<Socio> rs = new ArrayList<Socio>();    
            rs = SocioDAO.getSociosByQuery(query);      

                if (rs.isEmpty()) {
                    out.println("No hay coincidencias");
                }
                else {

                    Iterator <Socio> iterator = rs.iterator();
                    while (iterator.hasNext()) {
                        String nombre = (String) iterator.next().getNombre();
                        out.println(nombre);
                    }

            }

任何建议将不胜感激! 谢谢, 缺口

I am trying to implement the jQuery autocomplete plugin by receiving the data through a servlet.
The script works and it does pull the results from the servlet but I can't get it to render properly in the drop down menu. Say I write "hel" in the search bar, the autocomplete drop down list is:

h
e
l
l
o

From what I understand, the autocomplete plugin is supposed to receive an array and I think that may be the issue.
This is my javascript code:

<script>
function getFilteredNames(request, response){

    $.ajax({
        type: "POST",
        url: "../servlet/Autocomplete", 
        data: request,
        success: function(data) {
            response(data);
        }
    });
}

$(document).ready(function(){
        $("#buscar").autocomplete({ source : getFilteredNames, minLength: 3}); 
});
</script>

And this is part of the servlet code:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        try {
            String query = request.getParameter("term");
            List<Socio> rs = new ArrayList<Socio>();    
            rs = SocioDAO.getSociosByQuery(query);      

                if (rs.isEmpty()) {
                    out.println("No hay coincidencias");
                }
                else {

                    Iterator <Socio> iterator = rs.iterator();
                    while (iterator.hasNext()) {
                        String nombre = (String) iterator.next().getNombre();
                        out.println(nombre);
                    }

            }

Any suggestions would be greatly appreciated!
Thanks,
Nick

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七七 2025-01-12 19:07:37

自动完成 UI 插件接受 JSON 数据格式的数组、对象。

  1. 所以你必须将 datatype:json 放入你的 $.ajax 调用中,
  2. 因为你使用 servlet 之前你必须将其格式化为 json 格式
    通过ajax调用发送到客户端。

为了将你的数据转换为 json 格式,你可以使用 http://www.json.org/ 提供的实用程序调用

The autocomplete UI plugin accepts array,object formatted in JSON data.

  1. So u have to put datatype:json in ur $.ajax Call
  2. As u r using servlet u have to format it in json format before
    sending to client side through ajax call.

for converting ur data to json format u can use utility call provided by http://www.json.org/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文