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);

?>

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>

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();

    }

}

时间: 2024-10-07 18:10:37

CI框架下的城市联动的相关文章

CI框架下的get_instance() 函数

你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象.因为只有一个实例,所以无论这个函数使用多少次都不会消耗资源的.一般来说,只有在helper或library中才使用get_instance. 以前我们都是这样用的:$this->load->library('session'); $this只作用在你自己的控制器.模型.视图中,如果你在自定义的类中也想使用CI的函数话,你就可以这样做:

CI框架下nginx重写规则

因为: server { listen 80; server_name 222.73.130.124; location / { index index.html index.htm index.php; root /data0/htdocs/www; if (!-e $request_filename) { rewrite "^/(.*)$" /index.php last;//这一条很重要 } rewrite ^/$/index.php last; } location ~ .*\

CI框架下 新浪微博登录接口完整版

https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功,将用户与本地平台连接起来,用户登录成功后信息的存储,本地数据库第三方登录表的设计.总之接口流程已全部完成.每个关键步骤我几乎都有注释,讲解详细. 首先来看下流程:流程原理:     1.通过code获得access_token通过授权,并获取用户的信息(包括用户u_id)(这个u_id在后面的第三

PHP CI框架下,如果配置NGINX(根目录和子目录两种模式)

摸索了一会儿,先配置成功,再看看PATH_INFO之类的东东吧. A,根目录: location ~ \.php($|/) { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $docum

CI框架下PHP读取mySQL数据库

1.在application/config/database.php 中填写好数据库的相关内容 包括hostname username password database 等 2.新建一个文件 application/controllers/GuanliCon.php 代码如下 <?php class GuanliCon extends CI_Controller{ public function __construct() {      parent::__construct();      

【ci框架基础】之部署百度编辑器

在ci框架下加载编辑器,现在复习下内容.我的框架文件名称为ci 1.下载百度编辑器ueditor,http://ueditor.baidu.com/ 一般情况下下载ubuilder版即可,并将ueditor复制到ci框架的根目录下. 下载好的编辑器目录为:-ueditor----dialogs     弹出对话框对应的资源和JS文件----lang        编辑器国际化显示的文件----php         涉及到服务器端操作的后台文件----themes      样式图片和样式文件-

CI框架数据库操作整理

整理一下CI框架下数据库的基本操作函数的调用和使用,适用于新人: $this->load->database();//实例化db属性 在实例化db之后,可以运用该对象的丰富的函数来对数据库进行查改删增的操作. mysql数据库 create table users(username varchar(10),password varchar(10),email varchar(10));//创建users表 1.数据库添加操作 $user=arrar( "username"=

CI框架浅析(全篇)

业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M多,而且使用起来方便快捷,适用于一些简单的功能开发,以及做app 接口. 该框架整个流程图如下: li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Hannotate SC" } span.s1 { } span.s2 { }

CI框架后台添加左侧导航栏出现的一系列问题

后台在数据库中添加了一个栏目.但是但点击这个新添加的栏目之后,却发现左侧的导航栏没有了,,为什么呢. 注意CI框架下在shared/libraries/Acl.php这个文件,(后台权限控制类) 里边有一个show_left_menus()方法,这个方法主要是用来过滤左侧导航栏的功能.在这里边添加你新添加的导航, 发现是不是ok了,,耗费大量人力物力,终于好了..