2010-10-05 34 views
0

我使用這個插件: http://jqueryui.com/demos/autocomplete/#remotejQuery UI的自動完成插件改變PHP請求的URL

偉大的作品,但我想用請求的URL是這樣的:「www.mysite.com/search/my搜索輸入「而不是這樣:」www.mysite.com/?term=my搜索輸入「,因爲我使用codeigniter,這就是我如何使用URL。因此,我需要追加搜索輸入,就像這個「/我的搜索輸入」,因爲我可以給出URL的第一部分,但我不知道如何更改「?term =」的附加內容。

問題是URL將被添加?term = value,這就是我需要更改爲/ search/value的內容。 Codeigniter在這裏不是問題,我相信自動完成代碼需要改變。

任何想法?

謝謝。

回答

1

我管理,使用此代碼來解決這一問題:

$("#test").autocomplete({ 
      source: function(req, add){ 
       $.ajax({ 
        url: 'search/q', 
        dataType: 'json', 
        type: 'POST', 
        data: req, 
      success:function(data){ 
       var items = []; 
       $.each(data, function(i, val){ 
       items.push(val); 
       }); 
       add(items); 
       } 
       }) 
       }, 
      minLength: 2, 
      autoFill:true, 
      highlight:true, 
      scroll:true, 
      selectFirst:true, 
      matchContains: true 
     }); 

我希望這派上用場,如果人在搜索同一件事。

0

您可以直接在自動填充的網址參數中使用codeigniter網址。我在我的一個項目中使用了下面的一個。

<script> 
$(document).ready(function(){ 
    $("#search").autocomplete('<?php echo site_url('ajax/get_words');?>', { 
      extraParams: { 
       language: function() { return 'english'; } 
      } 
     }); 
}); 
</script> 

我希望這會幫助你。讓我知道你是否需要更多。

+0

問題是URL將附加?term = value,這就是我需要更改爲/ search/value – 2010-10-05 16:03:43

+0

如果您在我的代碼中看到我添加了附加參數'language'。你也可以像這樣添加你的參數。最重要的是,默認情況下,jQuery自動完成將在GET變量中發送額外的參數,如?term = value。你應該將默認的ajax類型更改爲'$ .ajax({type:'在第330行到第340行的jquery.autocomplete.js文件中'post')。 – 2010-10-05 16:08:08

+0

該死的,得到了​​錯誤的自動完成鏈接。請檢查出來,謝謝 – 2010-10-05 16:18:01