Php 基于Ajax的Select2 Codeigniter问题
嗨,朋友们,我正在尝试使用CodeIgniter做一个基于Ajax的select2。我使用的是4.0.1 Select2版本。我收到了来自ajax的响应,但结果没有显示在SELECT2中。你能检查一下下面的代码并告诉我哪里做错了吗 这是我的型号Php 基于Ajax的Select2 Codeigniter问题,php,jquery,ajax,codeigniter,jquery-select2,Php,Jquery,Ajax,Codeigniter,Jquery Select2,嗨,朋友们,我正在尝试使用CodeIgniter做一个基于Ajax的select2。我使用的是4.0.1 Select2版本。我收到了来自ajax的响应,但结果没有显示在SELECT2中。你能检查一下下面的代码并告诉我哪里做错了吗 这是我的型号 //Model class AddServiceAreaModel extends CI_Model { //Function for getting suburbs from restaurant //MAIN FUNCTION FOR
//Model
class AddServiceAreaModel extends CI_Model
{
//Function for getting suburbs from restaurant
//MAIN FUNCTION FOR DATATABLE
public function get_postcodes($q)
{
$query = $this->db->select('postcode')
->group_by('postcode')
->like('postcode', $q)
->get('tbl_suburb');
$json = $query->result_array();
echo json_encode($json);
}
}
以下是我的观点
<div id="page-inner">
<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->
<div class="panel panel-default">
<div class="panel-heading"> Add Service Area</div>
<form id="addFrm">
<div class="panel-body">
<div class="">
<!-- Modal content-->
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="postcode">Postcode</label>
<select class="selectbox form-control required" id="postcode" name="postcode"></select>
</div>
</div>
</div>
</div>
<button type="submit" id="btnSubmit" class="btn btn-success">Update</button>
</div>
</form>
</div>
<!--End Advanced Tables -->
</div>
</div>
<!-- /. ROW -->
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#postcode').select2({
placeholder: 'Select for tag',
ajax: {
url: '<?php echo base_url('restaurant/addservicearea/get_postcode') ?>',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
};
},
cache: true
}
});
});
</script>
输出显示空白结果,即使我在ajax中得到响应。
你能告诉我哪里错了吗?提前感谢。前面我认为您需要一个成功功能,但是选择2使用processResults功能。事实证明,你只需要这样:
processResults: function (data) {
return {
results: data.items
};
},
然后,在PHP中,当您发回响应时,select2需要一个items元素,然后是包含“id”和“text”的数组:
我在本地进行了测试,在做了这些更改之后,我得到了结果。现在应该对你有用了。根本不起作用。请检查并让我知道。谢谢,我现在开始工作了,修改了我的答案。我在本地用CI3测试了这个。
processResults: function (data) {
return {
results: data.items
};
},
// This is just a sample, of course yours will be dynamic
echo json_encode(array(
'items' => array(
array('id' => '0', 'text' => '12345'),
array('id' => '1', 'text' => '12346'),
array('id' => '2', 'text' => '12347')
)
);