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)!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号