2012-08-14 39 views
5

如何設置額外的參數來查詢像jQuery的tokeninput篩選查詢發送額外的參數

q=myseed&filter=1,2,34 

更好地會帶有附加事件 像

onFocus:function(){ 
    //retrieve extra params 
} 

這裏是一個插件的鏈接 - http://loopj.com/jquery-tokeninput/

+1

插件的作者根本就沒有提供這個功能... – Lix 2012-08-14 11:10:20

+0

@Lix,現在它是可能的,請參閱我的回答http://stackoverflow.com/a/31720287/932473 – dav 2015-07-30 09:42:30

回答

1

除了進入實際的插件代碼並添加此功能,唯一的另一種方式,我可以看到這樣做是通過更改th ËqueryParam喜歡的東西 -

filter=1,2,34&q 

這樣,你的過濾器被簡單地附加到實際查詢參數。它必須經過硬編碼,每次你想改變這個額外的過濾器時,你可能不得不重新初始化插件。

示例 -

$("#selector").tokenInput("PATH_TO_SCRIPT", { 
    queryParam: "filter=1,2,34&q" 
}); 
+0

感謝您的回覆。[。它必須是硬編碼,你可能需要重新初始化插件,每次你想改變這個額外的過濾器。]多數民衆贊成在問題:( – 2012-08-14 11:33:26

+0

就像我在我的第一個評論中說,這根本不是一個功能提供,所以你必須破解它.. – Lix 2012-08-14 11:34:12

+1

設置一個cookie值可能有幫助...你可以設置過濾器在那裏,並閱讀它的服務器端....或通過AJAX會話變量也是一個選項.. 。 – Lix 2012-08-14 14:48:02

1

另一種方式來做到這一點,你可以使用初始URL來實現這一目標。

一樣的東西:如預期

+0

這是行不通的,它會以'PATH_TO_SCRIPT&filter = 1 ,2,3?q = term'到服務器 – Oktav 2013-05-07 13:25:05

+0

這實際上工作,但你不必聲明查詢參數,而不是「&」使用「?」:'''$(「#selector」 )。tokenInput(「PATH_TO_SCRIPT?filter = 1,2,3」,{you settings}); ''' – Thanatos11th 2017-05-09 15:12:40

4

這裏

$("#selector").tokenInput("PATH_TO_SCRIPT&filter=1,2,3", { 
    queryParam: "q" 
}); 

這將是處理是你如何能做到這一點,在下面的例子中,我傳遞了兩個額外的參數去的tokenInput網址。

this.$("#abcTextbox").tokenInput("url?someParam1=cricket&someParam2=yasser", { 
    queryParam: "q" 
}); 

Source

1

我知道這個問題是很老,但我有同樣的問題,並找到了答案。

看看源代碼,url參數可以是一個在發送ajax查詢之前跳過的函數。所以,你可以這樣做:

this.$("#abcTextbox").tokenInput(function(){ 
    return "/path/to/script.php?filter="+$("#myFieldId").val() 
}, { 
    queryParam: "q" 
... 
}); 
+0

但是,網址被緩存。只有第一次運作。 – darethas 2016-03-17 13:27:58

2

這可能是由插件的原始功能(至少當前版本),它只是沒有寫在文檔中:有代碼onSend callback。下面是簡單的例子

$(".my-input").tokenInput('autocomplete.php', { 
    hintText: false, 
    onSend: function(param1) { 
     // console.log($(this)); 
     // console.log(param1); 
     param1.data.my_key = 'my_value'; 
    } 
});