我使用 Bootstrap multi-select 我想用 ajax 更新流选项
要在初始化时填充我的多选
foreach ($sel_models as $mod) { ?> >= $mod ?> } ?>
然后在事件中我想用以下 ajax 更新我的选项列表
我试图使用重建方法,但在创建后不会触发下拉列表
$.ajax({ type: 'post', url: "helper/ajax_search.php", data: {models: decodeURIComponent(brands)}, dataType: 'json', success: function(data) { $('select.multiselect').empty(); $('select.multiselect').append( $(' ') .text('alle') .val('alle') ); $.each(data, function(index, html) { $('select.multiselect').append( $(' ') .text(html.name) .val(html.name) ); }); $('.multiselect').multiselect('rebuild') }, error: function(error) { console.log("Error:"); console.log(lỗi); } });
使用 Firebug 我可以看到列表已生成但在选择时不会显示
在我可以阅读的文档中:
.multiselect('setOptions', 选项)用于在初始化多选后更改配置。这可能与 .multiselect('rebuild') 结合使用很有用。
也许您无法通过您最初的方式更改您的小部件数据。您应该以正确的方式使用 setOptions
方法。
否则:按照您的方式,也许您应该考虑销毁您的小部件 .multiselect('destroy')
并在之后重新创建它。
评论后更新:
在文档中:(您已链接)
Provides data for building the select's options the following way:
var data = [ {label: "ACNP", value: "ACNP"}, {label: "test", value: "test"} ]; $("#multiselect").multiselect('dataprovider', data);
所以: 当您从 ajax 调用中获取数据时,您必须创建一个对象数组(这是您想要的选择中的选项) ,其格式类似于
var data = [ {label: 'option1Label', value: 'option1Value'}, {label: 'option2Label', value: 'option2Value'}, ... ]
创建对象数组后,您只需调用方法
$("#multiselect").multiselect('dataprovider', data);
其中数据是您的对象数组。
我希望我是清楚的:/
Tôi là một lập trình viên xuất sắc, rất giỏi!