
Controller:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Ajax_sample extends CI_Controller {
/* file: application/controllers/ajax_sample.php */
function index(){
$data = array();
$data['arr_field1'] = array(
1 => 'option 1',
2 => 'option 2',
3 => 'option 3',
);
$this->load->helper('form');
$this->load->view('sample_dropdown', $data);
}
function get_dropdown_values($filter){
$this->load->model('test_model');
$result = $this->test_model->get_options($filter);
$this->load->helper('form');
echo form_dropdown('field2', $result, NULL, 'id="field2"');
}
}
Model:
<?php
class Test_model extends CI_Model {
/* file: application/models/test_model.php */
function get_options($filter=''){
switch($filter){
case 1:
$arr = array('option A', 'option B', 'option C');
break;
case 2:
$arr = array('option D', 'option E', 'option F');
break;
case 3:
$arr = array('option G', 'option H', 'option I');
break;
default: $arr = array('option Z');
}
return $arr;
}
}
View:
<?php
/* file: application/views/sample_dropdown.php */
echo form_open('insert');
echo form_dropdown('field1', $arr_field1, NULL, 'id="field1" onchange="load_dropdown_content($(\'#field2\'), this.value)"');
echo form_dropdown('field2', array('0' => '...'), NULL, 'id="field2"');
echo form_close();
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
function load_dropdown_content(field_dropdown, selected_value){
var result = $.ajax({
'url' : '<?php echo site_url('ajax_sample/get_dropdown_values'); ?>/' + selected_value,
'async' : false
}).responseText;
field_dropdown.replaceWith(result);
}
</script>
URL : http://localhost/codeIgniter_3_1_10/ajax_sample