我正在使用这个游戏开展一个项目!框架和我目前卡住试图找出如何连接基本的jquery自动完成以使用mysql数据库作为数据源并从中检索信息。有人曾尝试过这个吗?感谢。
答案 0 :(得分:3)
使用jqueryui自动完成功能,您只需设置一个带有特殊类“自动完成”的输入字段:
<input type="text" class="ui-state-default autocomplete" name="object.name" value="" />
然后您可以使用此jquery代码来设置自动完成
$(document).ready(function(){
$('input.autocomplete').each( function() {
var $input = $(this);
// Set-up the autocomplete widget.
$(this).autocomplete({
minLength: 3,
source : function(req, resp) {
$.getJSON("@{MyController.getObjects()}?term=" + req.term , req, function(data) {
var suggestions = [];
$.each(data, function(i, val) {
var obj = {};
obj.label = val.name;
obj.id = val.id;
suggestions.push(obj);
});
resp(suggestions);
});
}
});
});
});
在这里,您可以在控制器“MyController”上调用方法getObjects。这个方法看起来像
public static void getObjects(final String term) {
renderJSON(MyObject.findByName(term, AUTOCOMPLETE_MAX));
}
其中“findByName”是模型对象中按名称搜索对象的方法。 AUTOCOMPLETE_MAX是一个const,它定义了要检索的最大对象数。
控制器方法getObjects在javascript中返回一个名为“val”的json对象。请注意,您必须将此对象中的值映射到具有“标签”和“id”的对象,该对象可由jquery自动完成管理。
使用此解决方案,您将在控制器验证方法中返回对象名称。我喜欢这个解决方案,因为您可以在控制器中按名称搜索对象,允许用户使用自动完成列表选择一些内容。然后,您将在控制器验证方法中验证名称。
您在lunatech网站上有另一个基于ID的解决方案:http://www.lunatech-research.com/archives/2011/07/05/jquery-ui-ajax-autocomplete-playframework
答案 1 :(得分:-2)
尝试使用jquery-UI自动完成功能。
http://jqueryui.com/demos/autocomplete/
这可能会有所帮助
在auto complete jquery UI中,您可以将输入(源)作为字符串,数组或javascript回调。
在您的情况下,您可以使用回调作为源,并可以使用ajax从mysql获取数据。
我还没有尝试过,但我想它应该可行。