带有Mod_Rewrite的Jquery从somefile.php更改请求?q = foo到/ somefile / foo?

时间:2013-05-13 10:49:11

标签: jquery mod-rewrite laravel tag-it

我正在使用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()));
            }
        });
    }
});

1 个答案:

答案 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()));
            }
        });
    }
});

这似乎有效,并且令人惊讶地活泼。我知道有可能有更好的方法来做到这一点,但这是我现在能做的最好的事情。