javascript - Jquery 中的 Ajax 自动完成无法显示结果

标签 javascript php jquery ajax

我有以下代码:

$(document).ready(function() {
        src = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
        // Load the cities straight from the server, passing the country as an extra param
        $("#k").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: src,
                    dataType: "json",
                    data: {
                        k       : request.term,
                        dict    : $("#dict").val(),
                        action  :"autocomplete_dict"
                    },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return item.value;
                        }))
                    }
                });
            },
            // optional (if other layers overlap autocomplete list)
            open: function(event, ui) {
                $(".ui-autocomplete").css("z-index", 1000);
                $(".ui-autocomplete-loading").css("background:url",'img/indicator.gif no-repeat right center');
            },
            min_length: 3
        });
        });

答案表单服务器

["Lebemann","Leben","leben","lebend","lebendig"]

我可以看到从浏览器到服务器的请求,但无法显示服务器的结果。有人可以帮助我。我做错了什么?

最佳答案

我会尝试一下。您的问题在刚接触 jQuery 的开发人员中很常见。 $.ajax 是一个异步函数,这意味着它是一个非阻塞任务。该函数本身在返回任何数据之前就已完成。我认为你必须做的是计时,这样你就知道数据参数中有一些东西。

    $.ajax({
                    url: src,
                    dataType: "json",
                    data: {
                        k       : request.term,
                        dict    : $("#dict").val(),
                        action  :"autocomplete_dict"
                    },
                    success: function (data) {
                        $("#K").autocomplete({
                  Source:data // not sure what Response is but you may need to Response data if its a transformer of some sort.
})
                        }))
                    }
                });

这首先会触发 ajax,然后一旦请求完成,它就会使用真实数据启动自动完成。

关于javascript - Jquery 中的 Ajax 自动完成无法显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34301510/

相关文章:

PHP循环遍历嵌套的json数组

javascript - 服务器端事件和 Ajax 请求

javascript - setInterval() 对于非事件选项卡无法正常工作

javascript - 请求nodejs模块不支持某些url的重定向

javascript - 如何存储数组中所有小于前 3 个值的值?

javascript - 如何使用 PHP 获取 JSON 输出

php - 使用哪个正则表达式来确定要为 html 属性和 javascript 转义哪些字符?

php - 我们可以将 Laravel 项目作为库集成到 CodeIgniter 中吗?

php - $.post 和 mysql 数据库的问题

jquery - DataTables (serverSide) 在第一次请求时正常,在搜索或重新排序时请求中失败并显示 "[Object object"]