[英]Set default selected value in Select2 fetching data from ajax
我使用一些輸入字段和以下內容過濾結果列表:
$("#idCustomer").select2({
allowClear: true,
placeholder: "Filter",
ajax: {
url: 'ajax/search_customers.php',
dataType: 'json',
type: "GET",
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.Name,
id: item.ID
}
})
};
}
}
});
效果很好,但是提交表單后,我想用已經應用的過濾器填充輸入。 可以接受其他所有輸入:
例如:
<input id="minRange" name="minRange" value="<?php echo $minRange; ?>">
我的page.php
if ( isset($_POST) ) {
$minRange = $_POST['minRange'];
$idCustomer = $_POST['idCustomer'];
...
}
但是我不知道如何用我使用的搜索自動填充Select2。 例如,如果我寫“ DEM”,我的Select2建議我“ DEMO CUSTOMER”(ID = 4)。 我選擇它,提交表單,然后在重新加載頁面后,Select2 idCustomer
仍然為空。 我想使用傳遞給表單進行搜索的id = 4將其初始化。
我試圖追加$("#idCustomer").val(<?php echo $idCustomer; ?>).trigger("change");
但這不起作用。
我正在使用最新的4.1版本的插件
您必須提及選擇自動完成功能
// HTML
// JS
$("#idCustomer").select2({
allowClear: true,
placeholder: "Filter",
ajax: {
url: 'ajax/search_customers.php',
dataType: 'json',
type: "GET",
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.Name,
id: item.ID
}
})
};
}
},
minLength: 2,
select: function(event, ui) {
var Name = ui.item.Name;
$("#minRange").val(Name);
}
})
;
解決:
<select id="idCustomer" name="idCustomer" class="form-control">
<?php if ( $idCustomer != "" ) { ?><option value="<?php echo $idCustomer; ?>"><?php echo get_info_by_id($idCustomer)['Name']; ?></option><?php } ?>
</select>
Select2完成其余工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.