передача параметров в вызов ajax select2 jQuery
Я пытаюсь передать дополнительный параметр вызову ajax в select2:
$(".auto-sug").select2({
width:'element',
minimumInputLength:2,
ajax: {
url: "/action/get-custom.php",
data: function (term, page) {
return {
q: term, // search term
page_limit: 10
};
},
results: function (data, page) {
return {results: data.stuff};
}
}
});
Я действительно хочу передать другой параметр вызову ajax... идентификатор самого элемента
<input type="text" class="auto-sug" name="custom" id="3383" />
однако я не могу понять, как фактически получить доступ к идентификатору элемента (3383) или любому другому значению на странице.
3 ответов
предполагая, что существует несколько элементов с классом auto-sug
, вы могли бы попробовать что-то вроде этого:
$(".auto-sug").each(function() {
var thisId = this.id;
$(this).select2({
...
ajax: {
...
id: thisId,
},
});
});
вы должны передать этот дополнительный параметр внутри функции данных вместо корневого ajax, чтобы он выполнялся каждый раз, когда вы делаете запрос:
ajax: {
url: "/action/get-custom.php",
data: function (term, page) {
return {
q: term, // search term
anotherParm: whatEverValue, //Get your value from other elements using Query, for example.
page_limit: 10
};
затем для получения идентификатора для текущего select2 вы можете заменить whateverValue
С $(this).data(key)
здесь вы можете добавить новые параметры.
data: function (params) {
ultimaConsulta = params.term;
localidad = $("#idOcultoLocalidad").val(); //this is the anotherParm
return {
criterio: params.term, // search term
criterio2: localidad,
};
},