【发布时间】:2018-05-29 05:57:08
【问题描述】:
我有 3 个 select2 字段,我想使用 API 中的 AJAX 填充它们。我的问题是,如何直接从 API 填充第一个选择字段选项,然后第二个字段选项也由 API 填充,但基于我从第一个选择字段中的选择,第三个也是如此。
例如,下面是我的代码和数据:
API
[
{
"id": 1,
"project_type": "tv",
"project_stage": "new",
"project_name": "Project A"
},
{
"id": 2,
"project_type": "game",
"project_stage": "completed",
"project_name": "Project B"
},
{
"id": 3,
"project_type": "game",
"project_stage": "new",
"project_name": "Project C"
},
{
"id": 4,
"project_stage": "completed",
"project_type": "film",
"project_name": "Project D"
}
]
HTML
<div class="group">
<select class="project_type" id="project_type" multiple="multiple">
<option value=""></option>
</select>
<select class="project_status" id="project_status" multiple="multiple"">
<option value=""></option>
</select>
<select class="project_select" id="project_select" multiple="multiple">
<option value=""></option>
</select>
</div>
Javascript
$('#project_type').select2({placeholder: "Select project type",});
$('#project_status').select2({placeholder: "Select project Status",});
$('#project_select').select2({placeholder: "Select project",});
预期结果:
现在project_type 选择字段将所有项目类型填充为选项并说我们选择"game" 然后project_status 选项将是:
<select class="project_status" id="project_status" multiple="multiple"">
<option value="completed">Completed</option>
<option value="new">New</option>
</select>
如果我们选择completed,第三个过滤器将是:
<select class="project_select" id="project_select" multiple="multiple">
<option value="Project B">Project B</option>
</select>
我之前从jinja2 填充了它,它不是动态的,非常感谢任何帮助。
更新:
以下是我当前的代码,出于奇怪的原因,即使是第一个过滤器,即使我正在获取数据,它也不会填充选项:
$('#project_type').select2({
placeholder: "Select project type",
ajax: {
url: '/api/filter/',
delay: 250,
type: 'GET',
data: function (params) {
var query = {
search: params.term,
type: 'public'
}
return query
},
processResults: function (data) {
var data1 = $.map(data, function (obj, idx) {
console.log(obj.project_type);
return obj;
});
console.log("processResults2:", data1);
return {
results: data1,
};
}
}
});
【问题讨论】:
-
问题是什么?
-
这里是 Ajax 填充 Select2 字段的示例:stackoverflow.com/questions/47797831/…
-
我编辑了我的问题,如果仍有困惑,请告诉我,为误导表示歉意
-
您是否尝试过遍历数据并从每个数据中构建您的选择字段?
-
目前我什至无法填充第一个字段,它获取所有数据但未填充选项字段,我用我当前的代码更新我的问题
标签: javascript jquery ajax rest jquery-select2