zoukankan      html  css  js  c++  java
  • 地点下来框的实现(php)

    效果图:

    样式(bootstrap):

    class="selectpicker show-tick form-control",就是多了个form-contro就行了

    概念:

            这里做了两个change的动作:

               第一,当省的取值改变的时候,市和区的数据也会改变

               第二,当市的取值改变的时候,区的数据也会改变

    第一个动作在加载的时候就需要完成,也需要设置为省的改变动作。

    第二个只需要设置市的改变动作即可。

     根据上一级取到的数据来改变下一级的数据

    数据的互动用ajax来实行,用ajax取到的数据只能在success里面有效。

    代码如下:

    ajax:    

     1 public function area(){
     2         header("Content-Type: text/html; charset=UTF-8");
     3           if(I('get.id')){
     4                $area = M('area');
     5                $where = array();
     6                $where['area_name'] = I('get.id');
     7                $id = $area -> where($where) -> field('area_id') -> find();
     8                $where = null;
     9                  $where['parent_id'] = $id['area_id'];
    10                  $data = $area -> where($where) -> field('area_id,area_name,area_describe,parent_id') -> select();
    11                  $this->ajaxReturn($data,'json');
    12           }

    动作事件:

     1 //  area_province 省   , area_city 市 , area_district 区
     2       $(document).ready(function(){
     3           area_one('#area_province','#area_city','#area_district');
     4       })
     5 
     6       $('#area_province').change(function(){
     7 //          area('#area_province','#area_city');
     8           area_one('#area_province','#area_city','#area_district');
     9       });
    10   
    11       $('#area_city').change(function(){
    12           area_two('#area_city','#area_district');
    13           });

    方法:

     1       function  area_one(getSelect,serSelect,setSelect){
     2           var a =  $(getSelect).val();
     3           var html = '';
     4           if(a !== null && a !== '' && a !== undefined ){
     5               $.ajax({
     6                   type:"get",
     7                   url : "{:U('FullTime/area')}",
     8                   data:{ id : a },
     9                   dataType: "json",
    10                   success: function(data){
    11                       for (var i = 0; i < data.length; i++) {
    12                           if(i == 0){
    13                               html += "<option value=" + "'" + data[i].area_name + "'" + " " +"selected='selected'" +">"
    14                                       + data[i].area_name +" </option>";
    15                           }
    16                           html += "<option value=" + "'" + data[i].area_name + "'" +">"
    17                                   + data[i].area_name +" </option>";
    18                       }
    19                       $(serSelect).html(html);
    20                       area_two(serSelect,setSelect)
    21                   },
    22                   error:function(jqXHR){
    23                       alert("发生错误:" + jqXHR.status);
    24                   },
    25               });
    26           }else{
    27 
    28           }
    29       }
     1       function area_two(getSelect,serSelect){
     2           var a =  $(getSelect).val();
     3           var html = '';
     4           if(a !== null && a !== '' && a !== undefined ){
     5               $.ajax({
     6                   type:"get",
     7                   url : "{:U('FullTime/area')}",
     8                   data:{ id : a },
     9                   dataType: "json",
    10                   success: function(data){
    11                       for (var i = 0; i < data.length; i++) {
    12                           html += "<option value=" + "'" + data[i].area_name + "'" +">"
    13                                   + data[i].area_name +" </option>";
    14                       }
    15                       $(serSelect).html(html);
    16                   },
    17                   error:function(jqXHR){
    18                       alert("发生错误:" + jqXHR.status);
    19                   },
    20               });
    21           }else{
    22               alert("上一级不能为空");
    23           }
    24       }
     
  • 相关阅读:
    HAProxy、Keepalived 在 Ocatvia 的应用实现与分析
    Octavia 的 HTTPS 与自建、签发 CA 证书
    Octavia 创建 loadbalancer 的实现与分析
    OpenStack Rally 质量评估与自动化测试利器
    自建 CA 中心并签发 CA 证书
    Failed building wheel for netifaces
    通过 vSphere WS API 获取 vCenter Datastore Provisioned Space 置备空间
    OpenStack Placement Project
    我们建了一个 Golang 硬核技术交流群(内含视频福利)
    没有图形界面的软件有什么用?
  • 原文地址:https://www.cnblogs.com/laijinquan/p/7581872.html
Copyright © 2011-2022 走看看