如何将选定值作为额外参数传递给 ajax 调用
How to pass selected value as extra parameter to ajax call
我的编码部分
$("#demo-input").tokenInput("data/autosuggest-search-city.php",
{
searchDelay: 2000,
minChars: 3,
tokenLimit: 10
});
我想将 selected 值作为额外参数发送给 "data/autosuggest-search-city.php"。
例如,
最初我搜索 select 列表中的一个值
然后再次搜索,这次我想将第一个 selected 值发送到服务器。
如何操作?
TokenInput 插件本身不支持。
但是,您可以制定一个简单的解决方法来更新 "AJAX url" 每当从选择中添加或删除标记时。
使用onAdd
和onDelete
callbacks触发"AJAX url"变化;
使用 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;
}
};
我的编码部分
$("#demo-input").tokenInput("data/autosuggest-search-city.php",
{
searchDelay: 2000,
minChars: 3,
tokenLimit: 10
});
我想将 selected 值作为额外参数发送给 "data/autosuggest-search-city.php"。
例如, 最初我搜索 select 列表中的一个值 然后再次搜索,这次我想将第一个 selected 值发送到服务器。
如何操作?
TokenInput 插件本身不支持。
但是,您可以制定一个简单的解决方法来更新 "AJAX url" 每当从选择中添加或删除标记时。
使用onAdd
和onDelete
callbacks触发"AJAX url"变化;
使用 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;
}
};