ci框架 省市三级联动
pre class=brush: php; gutter: true; first-line: 1; tab-size: 4; toolbar: true; width: 630px; height: 110px;只要在ci中引入这个就可以了简单?php $data[province_selected] = $address[province_id];$data[city_selected] = $address[city
只要在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);
?><?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 ~ 2KB 下载(16) 跳至 [1] [2] [全屏预览]
<?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();
}
}
- 上一篇:PHP中英文截取无乱码,包括全角下的字符
- 下一篇:一个简单的日志记录函数
精彩图集
精彩文章






