目前我正在使用控制器來獲取我的所有資料并將其放置在我的視圖類中的 foreach 陳述句中。因此,無論何時加載頁面,它都會執行此函式。為了實作這一點,我使用了這樣的東西:
控制器類:
$add['sources']= $this->contacts_model->get_array();
查看類:
<select name="contact_source" id="contact_source" class="form-control select2 <?php echo form_error('contact_source') ? 'red' : '' ?>" required/>
<option value="">Select</option>
<?php foreach($sources as $source): ?>
<option value="<?php echo $source['id']; ?>" <?php echo ($this->input->post('contact_source') == $source['id'])?'selected="selected"':''?>><?php echo $source['title']; ?></option>
<?php endforeach; ?>
</select>
但現在我希望頁面加載速度更快,因此我只想在用戶單擊該特定 select2 陳述句時加載下拉串列。我已經嘗試使用以下代碼來獲取 select2 變數,該變數具有使用下拉串列獲取輸入文本的 select 2 功能,但它們都不起作用。它只是在我的頁面加載時打開一個正常的下拉串列。
查看類:
<select name="contact_source" id="contact_source" class="form-control select2 <?php echo form_error('contact_source') ? 'red' : '' ?>" required/>
<option value="">Select</option>
<?php foreach($sources as $source): ?>
<option value="<?php echo $source['id']; ?>" <?php echo ($this->input->post('contact_source') == $source['id'])?'selected="selected"':''?>><?php echo $source['title']; ?></option>
<?php endforeach; ?>
</select>
$(document).ready(function(){
$('#contact_source').on('click', function(e) {
$("#contact_source").select2({
minimumInputLength: 2,
tags: [],
ajax: {
url: "<?php echo site_url('contacts/add'); ?>/",
dataType: 'json',
type: "GET",
delay : 50,
data: function (data) {
return {
sources: data.sources
};
},
results: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.sources,
id: item.id
}
})
};
}
}
});
})
});
uj5u.com熱心網友回復:
洗掉select2在<select name="contact_source" id="contact_source" required/>
并洗掉 $('#contact_source').on('click', function(e) {
我推薦jQuery Autocomplete.
https://jqueryui.com/autocomplete/#remote
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359571.html
標籤:php 查询 阿贾克斯 代码点火器 jquery-select2
上一篇:CodeIgniter4專案中未定義的常量“CodeIgniter\Database\MySQLi\MYSQLI_STORE_RESULT”
