首页 > php教程 > PHP源码 > 正文

ci框架 省市三级联动

PHP中文网
发布: 2016-05-25 17:08:29
原创
1717人浏览过

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

省市区三级联动的jQuery订单系统
省市区三级联动的jQuery订单系统

省市区三级联动的jQuery订单系统

省市区三级联动的jQuery订单系统 48
查看详情 省市区三级联动的jQuery订单系统
<?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)!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号