Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery UI自动完成JSON响应问题_Jquery_Jquery Ui_Autocomplete - Fatal编程技术网

jQuery UI自动完成JSON响应问题

jQuery UI自动完成JSON响应问题,jquery,jquery-ui,autocomplete,Jquery,Jquery Ui,Autocomplete,我做了大量的研究,但仍然不知道如何使用jQueryUIAutoComplete。自动完成不工作,我不知道为什么。任何帮助都将不胜感激 我在前端有以下内容。 1.jQuery链接正确。 2.jqueryui链接正确。 3.jQueryUICSS链接正确 <script> $("#tags").autocomplete({ source: function(request, response){ $.post("/panel/tags.php", {data:request.term},

我做了大量的研究,但仍然不知道如何使用jQueryUIAutoComplete。自动完成不工作,我不知道为什么。任何帮助都将不胜感激

我在前端有以下内容。 1.jQuery链接正确。 2.jqueryui链接正确。 3.jQueryUICSS链接正确

<script>
$("#tags").autocomplete({
source: function(request, response){
$.post("/panel/tags.php", {data:request.term}, function(data){     
    response($.maps(data, function(item) {
    return {
        label: item.tagName,
        value: item.tagID
    }
    }))
}, "json");
},
minLength: 2,
dataType: "json",
cache: false,
focus: function(event, ui) {
return false;
},
select: function(event, ui) {
this.value = ui.item.label;
/* Do something with user_id */
return false;
}

});
</script>


<div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags" size="50" />
</div>
其输出为:

[{“tagID”:“1”,“标记名”:“艺术”},{“tagID”:“4”,“标记名”:“艺术” 显示“},{tagID:“3”,“标记名:“艺术家”},{tagID:“2”,“标记名:“设计”}]


如果您通过放置?tag=art来访问页面,它将正确地消除“设计”。

看起来您正在做一个
post
,然后尝试在php页面上拾取
$\u GET['tags']
。因此,尝试使用
ajax
函数,并在php页面上选择
$\u GET['term']
。另外,
$.maps
不是一个函数。我想你的意思是
$.map

而且,如果希望
标签
作为输入值,则不要指定
字段。如果只指定一个,则自动完成将同时使用
标签

jQuery自动完成:

$("#tags").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "/panel/tags.php",
            dataType: "json",
            data: {term: request.term},
            success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            label: item.tagName
                       };
                }));
            }
        });
    },
    minLength: 2,
    select: function(event, ui) {
      /* Do something with user_id  */
    }
});
PHP:


链接到教程:

我在success函数的开头放上“alert(data.length);”,以检查从服务器接收的数据是否正确。它使jquery控件在接收数据时无法显示任何内容。

Awesome!请注意:我需要一个与标签不同的值(在我的例子中是cust_name和cust_nbr)。在“label:item.tagName”之后添加第二行:“value:tagId”。另外,我从服务器返回的JSON包含一个子数组和实际数据,我的客户信息在data.cust_数据中。在您的$.map中,请执行:“$.map(data.cust_data,function(item){”。(我猜我可以使用item.cust_data.cust_nbr)仅供参考,以防其他人遇到此问题。
$("#tags").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "/panel/tags.php",
            dataType: "json",
            data: {term: request.term},
            success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            label: item.tagName
                       };
                }));
            }
        });
    },
    minLength: 2,
    select: function(event, ui) {
      /* Do something with user_id  */
    }
});
$query_tags = "SELECT tagID, tagName FROM DCB_Tags WHERE tagName LIKE '".mysql_real_escape_string($_GET['term'])."%' ORDER BY tagName ASC LIMIT 10";