2015-06-19 48 views
1

我的編碼部分如何選擇的值作爲額外的參數傳遞給Ajax調用

$("#demo-input").tokenInput("data/autosuggest-search-city.php", 
     { 
      searchDelay: 2000, 
      minChars: 3, 
      tokenLimit: 10 
     }); 

我要選擇的值作爲發送額外的參數,以「數據/自動提示搜索-city.php」。

例如, 最初我搜索並從列表 中選擇一個值,然後再次搜索,這次我想將第一個選定的值發送到服務器。

如何做到這一點?

+0

可能重複的[jquery的tokeninput濾波器查詢發送額外的參數](http://stackoverflow.com/questions/11950973/jquery-tokeninput-filter-query-send-extra-parameters) – zxzak

回答

1

令牌輸入插件本身不支持。
然而,無論何時從選擇中添加或刪除標記,您都可以創建一個簡單的解決方法來更新「AJAX url」

使用onAddonDeletecallbacks觸發「AJAX網址」變化;
使用selector.tokenInput("get")獲得所選代幣method;
通過更新元素.data("settings").url設置新的「AJAX url」;

// cache the original url: 
var token_url = "data/autosuggest-search-city.php"; 

$("#demo-input").tokenInput(token_url, { 
    searchDelay : 2000, 
    minChars : 3, 
    tokenLimit : 10, 
    onAdd  : function(){ 
     urlChange.call(this); 
    }, 
    onDelete : function(){ 
     urlChange.call(this); 
    } 
}); 

function urlChange(){ 
    var tokens = '', token_list = $(this).tokenInput("get"); 
    // proceed if any token/s are selected: 
    if(token_list.length){ 
     // loop through the selected tokens (if more than one is selected) 
     $.each(token_list, function(i, token){ 
      // use token "id" (or "name" if you wish) and separate them with comma: 
      tokens += token.id + ','; 
     }); 
     // update url: 
     $(this).data("settings").url = token_url + '?selected_tokens='+tokens.replace(/,+$/,''); 
    }else{ 
     // leave original url if no tokens are selected: 
     $(this).data("settings").url = token_url; 
    } 
}; 
+0

表示控制檯錯誤「TypeError:$(...)。data(...)是不確定的」 – ranjith

+0

@ranjith,我不太確定它爲什麼不適合你...對我來說工作相當不錯... http:// phillip .com.pl/pub/tokeninput/ –

+1

它在更新lib文件(jquery.tokeninput.js)v:1.6.0後可用。 – ranjith

相關問題