两个 select2 工作正常,但它没有从 ajax 获取数据
Two select2 works properly but it does not get data from ajax
我有两个 select2 下拉菜单,它们都可以识别 select2 及其选项,但是 ajax 的 none 有效。
如果有人可以提供帮助,请与我分享您的想法,以了解我该如何解决此问题
这里有 jquery 个代码
<script>
$("#process").select2({
placeholder: "Process",
ajax: {
url: URL,
"headers": {
'Content-Type': 'application/json',
'Authorization': "Bearer " + localStorage.getItem('api_token')
},
dataType: 'json',
processResults: function(data) {
var json = [];
for (var j = 0; j < data.data.length; j++) {
var config = {
id: '',
text: '',
title: '',
value: '',
};
config.id = data.data[j].id;
config.text = data.data[j].code;
config.title = data.data[j].title;
config.icon = 'role';
json.push(config);
}
return {
results: json
};
}
}
});
$("#receiver").select2({
placeholder: "Receiver",
ajax: {
url: URL,
"headers": {
'Content-Type': 'application/json',
'Authorization': "Bearer " + localStorage.getItem('api_token')
},
dataType: 'json',
processResults: function (data) {
// Tranforms the top-level key of the response object from 'items' to 'results'
var json = [];
for (var j = 0; j < data.data.roles.length; j++) {
var config = {
id: '',
text: ''
};
config.id = data.data.roles[j].id;
config.text = data.data.roles[j].name;
json.push(config);
}
for (var k = 0; k < data.data.users.length; k++) {
var config = {
id: '',
text: ''
};
config.id = data.data.users[k].id;
config.text = data.data.users[k].name;
config.icon = 'user';
json.push(config);
}
return {
results: json
};
}
// Additional AJAX parameters go here; see the end of this chapter for the full code of this example
},
});
</script>
<select class="form-control m-select2 select2-hidden-accessible" id="receiver"></select>
<select class="form-control m-select2 select2-hidden-accessible" id="process"></select>
select2 的其他选项可以正常工作,但ajax 无法获取数据。
如果有人有任何想法,请与我分享
我找到了问题的解决方案,我应该在 setTimeout 函数中获取 .select2。
<script>
setTimeout(() => {
$("#id").select2()
}, 1000)
</script>
我有两个 select2 下拉菜单,它们都可以识别 select2 及其选项,但是 ajax 的 none 有效。 如果有人可以提供帮助,请与我分享您的想法,以了解我该如何解决此问题 这里有 jquery 个代码
<script>
$("#process").select2({
placeholder: "Process",
ajax: {
url: URL,
"headers": {
'Content-Type': 'application/json',
'Authorization': "Bearer " + localStorage.getItem('api_token')
},
dataType: 'json',
processResults: function(data) {
var json = [];
for (var j = 0; j < data.data.length; j++) {
var config = {
id: '',
text: '',
title: '',
value: '',
};
config.id = data.data[j].id;
config.text = data.data[j].code;
config.title = data.data[j].title;
config.icon = 'role';
json.push(config);
}
return {
results: json
};
}
}
});
$("#receiver").select2({
placeholder: "Receiver",
ajax: {
url: URL,
"headers": {
'Content-Type': 'application/json',
'Authorization': "Bearer " + localStorage.getItem('api_token')
},
dataType: 'json',
processResults: function (data) {
// Tranforms the top-level key of the response object from 'items' to 'results'
var json = [];
for (var j = 0; j < data.data.roles.length; j++) {
var config = {
id: '',
text: ''
};
config.id = data.data.roles[j].id;
config.text = data.data.roles[j].name;
json.push(config);
}
for (var k = 0; k < data.data.users.length; k++) {
var config = {
id: '',
text: ''
};
config.id = data.data.users[k].id;
config.text = data.data.users[k].name;
config.icon = 'user';
json.push(config);
}
return {
results: json
};
}
// Additional AJAX parameters go here; see the end of this chapter for the full code of this example
},
});
</script>
<select class="form-control m-select2 select2-hidden-accessible" id="receiver"></select>
<select class="form-control m-select2 select2-hidden-accessible" id="process"></select>
select2 的其他选项可以正常工作,但ajax 无法获取数据。 如果有人有任何想法,请与我分享
我找到了问题的解决方案,我应该在 setTimeout 函数中获取 .select2。
<script>
setTimeout(() => {
$("#id").select2()
}, 1000)
</script>