我正在使用jQuery的.autocomplete插件,我希望得到一些帮助,以便在将文本写入输入字段时填充下拉菜单中显示的结果。
为了让数据填充自动完成,我使用这个PHP从mySQL中提取:
$sql = ( 'SELECT tag, title, author, content, id FROM labels' );
$result = mysql_query( $sql );
$Response = array();
while( $row = mysql_fetch_object( $result ) ){
$Response[] = array(
"id" => $row->id,
"name" => $row->tag . ": " . $row->title . ": " . $row->content .""
);
}
当用户从最适合他们的自动填充中选择选项时,我使用此方法将上面的“名称”转换为“id”: var AllTagData =; var Tags = [];
for(var i in AllTagData){
Tags.push(AllTagData[i].name);
}
function getIdFromTag(_name){
for(var i in AllTagData){
if(_name == AllTagData[i].name){
return AllTagData[i].id;
}
}
}
到目前为止,这么好。最后,我使用jQuery自动完成插件为用户输出数据:
$(document).ready(function(){
$("#Responses").autocomplete({
source: Tags,
matchContains: true,
autoFill: true,
select: function(e, ui){
$("#hidden_tags").val( getIdFromTags($("#Responses").val()) );
}});
});
代码的最后一部分是我需要帮助实现formatItem,formatMatch和formatResult选项的地方。
从上面给出的PHP中,我在“名称”中输出标签,标题和内容。我想为用户格式化自动填充选项的方式是
因此,即使我希望自动完成功能搜索内容,我也不希望内容显示在已填充的自动完成列表中。我只希望显示标签和标题。
我一直遇到很多麻烦并且已经进行了大量搜索以找到答案,并且非常感谢您可以提供的有关如何实现这一目标的任何帮助。如果您需要进一步说明,请询问任何后续问题。 谢谢!
答案 0 :(得分:0)
我认为你使用的是不同版本的插件,但如果你看一下这个:
http://code.google.com/p/jquery-autocomplete/
您将找到一个文件index.html,其中包含您要求的示例,例如:
showResult: function(value, data) {
return '<span style="color:red">' + value + '</span>';
},
祝你好运!