如何在 sumo select 下拉列表中显示 ajax 响应?
How to display the ajax response inside sumo select dropdown?
我正在使用相扑select (http://hemantnegi.github.io/jquery.sumoselect/sumoselect_demo.html)。
我有三个下拉菜单 countries, state, and cities
。国家/地区显示在下拉列表中,onchange
取决于国家/地区 ID 州名称将显示在下拉列表中。
现在我的问题是,我没有在下拉列表中获取州名称,而是查看源代码。检查下图。如果我从下拉列表中删除 sum select class 那么它就可以工作了。
JS
$('.search_sumo').SumoSelect({search: true, searchText: 'Enter here.'});
$(".country_change").on('change',function(){
var country_id=$(this).val();
var select_list = $(this).data('target'); // The dropdown ID
$.ajax({
url:baseUrl +"/System_control/statename",
method:"POST",
data:"country_id="+country_id,
dataType: "json",
success:function(data){
//alert(data);
$('#'+select_list).empty();
var placeholder="<option value='' disabled selected>Select state</option>";
$('#'+select_list).html(placeholder);
$.each(data, function(i, data) {
$('#'+select_list).append("<option value='" + data.id + "'>" + data.state_name + "</option>");
});
}
});
});
HTML
<select name="country" class="form-control search_sumo country_change" data-target="target_state_dropdown">
<option selected disabled=""> Select country</option>
<?php foreach ($get_country as $row) {?>
<option value="<?php echo $row->id; ?>" <?php echo set_select('country',$row->id,False);?>><?php echo $row->country_name;?></option>
<?php }?>
</select>
<select name="state" class="form-control search_sumo state_get" id="target_state_dropdown" data-target="city_dropdown">
<option selected disabled=""> Select state</option>
</select>
谁能帮我解决这个问题?
@questionbank
您需要在成功操作中为异步加载的 select 框重新加载 sumo init。
所以在你的Ajax成功应该如下..
success:function(data){
$('#'+select_list).empty();
var placeholder="<option value='' disabled selected>Select state</option>";
$('#'+select_list).html(placeholder);
$.each(data, function(i, data) {
$('#'+select_list).append("<option value='" + data.id + "'>" + data.state_name + "</option>");
});
$('.search_sumo')[1].sumo.reload();
}
我正在使用相扑select (http://hemantnegi.github.io/jquery.sumoselect/sumoselect_demo.html)。
我有三个下拉菜单 countries, state, and cities
。国家/地区显示在下拉列表中,onchange
取决于国家/地区 ID 州名称将显示在下拉列表中。
现在我的问题是,我没有在下拉列表中获取州名称,而是查看源代码。检查下图。如果我从下拉列表中删除 sum select class 那么它就可以工作了。
JS
$('.search_sumo').SumoSelect({search: true, searchText: 'Enter here.'});
$(".country_change").on('change',function(){
var country_id=$(this).val();
var select_list = $(this).data('target'); // The dropdown ID
$.ajax({
url:baseUrl +"/System_control/statename",
method:"POST",
data:"country_id="+country_id,
dataType: "json",
success:function(data){
//alert(data);
$('#'+select_list).empty();
var placeholder="<option value='' disabled selected>Select state</option>";
$('#'+select_list).html(placeholder);
$.each(data, function(i, data) {
$('#'+select_list).append("<option value='" + data.id + "'>" + data.state_name + "</option>");
});
}
});
});
HTML
<select name="country" class="form-control search_sumo country_change" data-target="target_state_dropdown">
<option selected disabled=""> Select country</option>
<?php foreach ($get_country as $row) {?>
<option value="<?php echo $row->id; ?>" <?php echo set_select('country',$row->id,False);?>><?php echo $row->country_name;?></option>
<?php }?>
</select>
<select name="state" class="form-control search_sumo state_get" id="target_state_dropdown" data-target="city_dropdown">
<option selected disabled=""> Select state</option>
</select>
谁能帮我解决这个问题?
@questionbank
您需要在成功操作中为异步加载的 select 框重新加载 sumo init。
所以在你的Ajax成功应该如下..
success:function(data){
$('#'+select_list).empty();
var placeholder="<option value='' disabled selected>Select state</option>";
$('#'+select_list).html(placeholder);
$.each(data, function(i, data) {
$('#'+select_list).append("<option value='" + data.id + "'>" + data.state_name + "</option>");
});
$('.search_sumo')[1].sumo.reload();
}