总结:添加的所有项目的类别需要与项目名称一起保存。然后,这允许在提交时传输此类别信息,以便使用正确的查询(与正确的表相关)。想法?
我需要做的是,当用户选择他们正在搜索的内容(从自动完成下拉菜单中)时,类别信息(也就是它的类别名称)也会记录在某处。
这个想法是,当用户按下搜索时,他们正在寻找的短语以及类别名称也会被发送。推理:您有 3 张表格,一张包含有关汽车的信息,一张有关动物的信息,一张有关外星人的信息。如果已经确定了与它相关的表(从类别信息中),则不需要查询所有 3 个。
搜索所有 3 个的问题是您可能有一个名叫海绵鲍勃的外星人,以及一个动物等。
这是我们正在处理的代码(来自 jQueryUI 网站):
$.widget( "custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
var self = this,
currentCategory = "";
$.each( items, function( index, item ) {
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
self._renderItem( ul, item );
});
}
});
我的想法是在类别完成功能中,在选择事件下:
$(function() {
$( "#search" ).catcomplete({
delay:0,
source: "query/encode-json.php?term="+ $("#search").val(),
select: function(event, ui){
}
});
});
与所选项目关联的类别可以发送/存储在某处。我遇到的问题是我可以在小部件功能(item.category)中获取此信息,但此信息在选择事件中(直接)不可用。这是有道理的,因为小部件只填充列表,它不处理选择事件(我在想),但不知何故我需要能够访问这些信息。我的想法是找到索引并从那里向后工作,但这似乎不起作用。另一个选项(更基本的)是每次循环小部件时,都会将类别名称添加到 li 元素的标题字段中。
我已经尝试了几个小时,但无论哪种解决方案都没有取得任何进展。
感谢您提供的任何光亮:)