ci框架 省市三级联动
只要在ci中引入这个就可以了简单
<?php $data['province_selected'] = $address['province_id']; $data['city_selected'] = $address['city_id']; $data['district_selected'] = $address['district_id']; $this->load->view('district_select',$data); ?>
1. [文件] district_select.php
<?php $CI = get_instance(); $CI->load->model('region_model', 'region'); $provinces = $CI->region->provinces(); $citys = $CI->region->children_of($province_selected); ?> <script language="JavaScript"> <?php if(isset($province_selected)):?> var province_selected = <?php echo (int)$province_selected?>; <?php else:?> var province_selected = 0; <?php endif?> <?php if(isset($city_selected)):?> var city_selected = <?php echo (int)$city_selected?>; <?php else:?> var city_selected = 0; <?php endif?> <?php if(isset($district_selected)):?> var district_selected = <?php echo (int)$district_selected?>; <?php else:?> var district_selected = 0; <?php endif?> $(document).ready(function() { var change_city = function(){ $.ajax({ url: '<?php echo ITURL.'/admin.php/region_change/select_children/parent_id' // site_url('region_change/select_children/parent_id')?>'+'/'+$('#province_id').val(), type: 'GET', dataType: 'html', success: function(data){ city_json = eval('('+data+')'); var city = document.getElementById('city_id'); city.options.length = 0; city.options[0] = new Option('城市', '-11'); for(var i=0; i<city_json.length; i++){ var len = city.length; city.options[len] = new Option(city_json[i].region_name, city_json[i].region_id); if (city.options[len].value == city_selected){ city.options[len].selected = true; } } change_district();//重置地区 } }); } change_city();//初始化城市 $('#province_id').change(function(){ change_city(); }); var change_district = function(){ $.ajax({ url: '<?php echo ITURL.'/admin.php/region_change/select_children/parent_id' //site_url('region_change/select_children/parent_id')?>'+'/'+$('#city_id').val(), type: 'GET', dataType: 'html', success: function(data){ district_json = eval('('+data+')'); var district = document.getElementById('district_id'); district.options.length = 0; district.options[0] = new Option('县/区', '-22'); for(var i=0; i<district_json.length; i++){ var len = district.length; district.options[len] = new Option(district_json[i].region_name, district_json[i].region_id); if (district.options[len].value == district_selected){ district.options[len].selected = true; } } } }); } $('#city_id').change(function(){ change_district(); }); }); </script> <select name="province_id" id="province_id" style="width:100px;"> <option value="-1" >省份</option> <?php foreach($provinces as $key => $province): ?> <option value="<?php echo $province['region_id']; ?>" <?php if($province['region_id']==$province_selected){echo 'selected';}?> > <?php echo $province['region_name']; ?> </option> <?php endforeach; ?> </select> <select name="city_id" id="city_id" style="width:100px;"> </select> <select name="district_id" id="district_id" style="width:100px;"> <option value=""></option> </select>
2. [文件] region_model.php
<?php /** * 省市县 * * */ class Region_Model extends CI_Model { /** * * * @return Region_Model */ function Region_Model() { parent::__construct(); } // -------------------------------------------------------------------- /** * * * @param integer $parent_id */ function children_of($parent_id, $select="*") { $parent_id = (int)$parent_id; $regions = array(); $this->db->select($select); $this->db->where('parent_id', $parent_id); if ($query = $this->db->get('region')){ return $query->result_array(); } return array(); } // -------------------------------------------------------------------- /** * * * @return array */ function provinces() { return $this->children_of(1); } // -------------------------------------------------------------------- /** * 区域名 * * */ function get_name($id) { if (!$id){ return array(); } $this->db->select('region_name'); $query = $this->db->get_where('region',array('region_id' => $id)); if ($row = $query->row_array()){ return $row['region_name']; } return array(); } // -------------------------------------------------------------------- /** * load by id * * */ function load($id) { if (!$id){ return array(); } $query = $this->db->get_where('region',array('region_id' => $id)); if ($row = $query->row_array()){ return $row; } return array(); } }
以上就是ci框架 省市三级联动的内容,更多相关内容请关注PHP中文网(www.php.cn)!