做个简单的thinkphp三级联动

上图是个省市县的表。具体数据截图如下。


首先我们在thinkphp里找个controller,我这里是BusinessController.class.php,相应的前台business写个liandong.html页面。

liandong.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Thinkphp实现Ajax地区的三级联动</title>
    <script src="__PUBLIC__/Home/js/jquery.1.7.2.min.js"></script></head><!-- 找到自己的jq文件-->
<body>
<!-- 省份 -->
    <select name="pro" id="pro">
        <foreach name="region" item="v">
            <option value="{$v.id}">{$v.name}</option>
        </foreach>
    </select>
<!-- 城市 -->
    <select name="city" id="city">
        <option></option>
    </select>
<!-- 区县 -->
    <select name="area" id="area">
        <option></option>
    </select>
    
<script>
    $('#pro').change(function(){
        $.ajax({
            type:"post",
            url:"{:U('business/liandong')}",
            data:'pro_id='+$('#pro').val(),
            dataType:"json",
            success:function(data){
                $('#city').html(data);
            }
        });
    });
    
    $('#city').change(function(){
        $.ajax({
            type:"post",
            url:"{:U('business/liandong')}",
            data:'pro_id='+$('#city').val(),
            dataType:"json",
            success:function(data){
                $('#area').html(data);
            }
        });
    });
</script>
</body>
</html>



BusinessController.class.php里的liandong方法如下:

public function liandong(){
        if (IS_POST) {
            $parent_id['pid'] = I('post.pro_id','addslashes');
            $region = M('city')->where($parent_id)->select();
            $opt = '<option>--请选择市区--</option>';
            foreach($region as $key=>$val){
                $opt .= "<option value='{$val['id']}'>{$val['name']}</option>";
             }
             echo json_encode($opt);
                
        } else {
            $parent_id['pid'] = 1;
            $region = M('city')->where($parent_id)->select();
            $this->assign('region',$region);
            $this->display();
        }
        
    } 

此文借鉴引用http://www.thinkphp.cn/topic/41905.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值