我正在使用Jquery tag-it从远程json字符串中获取关键字列表 - 这样可以正常工作。
然而,我现在得到的是一种情况,当你输入它试图进行搜索查询时,而不是jquery'向下钻取'
somefile.php Q = FOO
(foo就是你刚输入的内容。这会深入标记列表,只显示那些带有'foo'的标签。
我正在使用Laravel 4,因此我需要基本上更改ajax请求,以便它改为/somefile/foo
。有没有办法做到这一点?我一直在寻找疯狂但无法找到解决方案。
供参考,这是我目前拥有的标签代码:
$("#tags").tagit({
autocomplete: {delay: 0, minLength: 2},
allowSpaces: true,
onlyAvailableTags : false,
tagSource: function(search, showChoices)
{
var that = this;
$.ajax({
url: "/admin/keywords/autocomplete",
data: { term:search.term },
dataType: "json",
success: function(choices)
{
showChoices(that._subtractArray(choices, that.assignedTags()));
}
});
}
});
答案 0 :(得分:0)
好的,我想我已经设法通过反复试验来解决这个问题 - 现在可行了。
我已经调整了我的Laravel路由,以便以下路径会对抛出的任何内容执行'%LIKE%'sql查询:
http://domain.com/admin/keywords/autocomplete/search/{term}
使用这个我在tagit插件中修改了ajax调用,而只是将输入附加到url的末尾。最终代码如下所示:
$("#tags").tagit({
autocomplete: {delay: 0, minLength: 2},
allowSpaces: true,
onlyAvailableTags : false,
tagSource: function(search, showChoices)
{
var that = this;
$.ajax({
url: "/admin/keywords/autocomplete/search/" + search.term,
// data: { term:search.term },
dataType: "json",
success: function(choices)
{
showChoices(that._subtractArray(choices, that.assignedTags()));
}
});
}
});
这似乎有效,并且令人惊讶地活泼。我知道有可能有更好的方法来做到这一点,但这是我现在能做的最好的事情。