使用jqueryautocomplete w/PHP,远程数据源和类别
我无法实现的类别功能 这是我的剧本:使用jqueryautocomplete w/PHP,远程数据源和类别,php,jquery,jquery-ui,jquery-ui-autocomplete,Php,Jquery,Jquery Ui,Jquery Ui Autocomplete,我无法实现的类别功能 这是我的剧本: $( function() { $.widget( "custom.catcomplete", $.ui.autocomplete, { _create: function() { this._super(); this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" ); }, _
$( function() {
$.widget( "custom.catcomplete", $.ui.autocomplete, {
_create: function() {
this._super();
this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
},
_renderMenu: function( ul, items ) {
var that = this,
currentCategory = "";
$.each( items, function( index, item ) {
var li;
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
li = that._renderItemData( ul, item );
if ( item.category ) {
li.attr( "aria-label", item.category + " : " + item.label );
}
});
}
});
$( ".accountIdInput" ).catcomplete({
delay: 0,
source: 'autocompleteAccount.php'
});
} );
及表格:
<input type="text" id="accountQuery" class="form-control accountIdInput idInput formElement ui-autocomplete-input">
没有结果弹出,但我不确定这是否是因为JSON在返回时是如何被解析的(或者没有被解析的)。我读过关于这个问题的其他文章,但找不到任何有效的解决方案
有什么想法吗?在JSON结果中,
category
看起来总是“Group”。还有,为什么不直接将$data
传递回去,为什么要通过数组_值()
传递呢?它只是剥离了您试图在jQuery中使用的键。您的SQL查询也很容易受到SQL注入的攻击。我建议使用MySQLi编写语句。感谢您指出SQL注入漏洞。关于类别——我现在正在运行一个测试,所以所有的东西都是同一个类别。我在前面使用了array_值来去除键,以匹配jQuery文档中的JSON输出,但您是对的,它看起来不必要。删除它没有帮助,即使它只在.php页面上工作,仍然没有输出。请提供一个php返回的JSON示例。或者将,console.log(item)
添加到您的$.each()
以查看它在JS中接收到的内容。在上面添加了一个PHP输出示例。我尝试添加控制台日志,但没有返回任何内容。
<input type="text" id="accountQuery" class="form-control accountIdInput idInput formElement ui-autocomplete-input">
[{"label":"Test Account {12345678901}","category":"Group"},{"label":"* Test Group TEST {1234}","category":"Group"}]