三级联动

4 篇文章 0 订阅

写一个简单的三级联动的效果,比较简单。

直接上代码:

<提前下载jquery库 >

index.php

// 分类
include "UnlimitedClassIfication.php";
$object = new UnlimitedClassIfication();
$a = $object->getArea();
?>

<html>
    <meta charset="UTF-8"/>
    <title>三级联动</title>
    <body>
        <select class="cate">
            <option value="0">请选择</option>
            <?php foreach ($a as $k => $v) :?>
            <option value="<?php echo $k; ?>"><?php echo $v; ?></option>
            <?php endforeach; ?>
        </select>
        <select class="cate">
            <option value="0">请选择</option>
        </select>
        <select>
            <option value="0">请选择</option>
        </select>
    </body>
    <script src="jq.js"></script>
    <script type="text/javascript">
        $(".cate").change(function(){
            var obj  = $(this);
            var type = obj.val();
            obj.nextAll().html('<option value="0">请选择</option>');
            $.ajax({
                    url:"http://www.test.com/UnlimitedClassIfication.php",
                    type:"get",
                    data:{"flag":1, "type":type},
                    async:false,
                    success:function(a) {
                        var a = eval("("+ a + ")");
                        // alert(a.status);
                        if(a.status == 0) {
                            alert(a.mess);
                        } else if (a.status == 1) {
                            obj.next().html(a.data);
                        }
                    }
            });
        });
    </script>
</html>

UnlimitedClassIfication.php

/**
 * 三级联动
 */
class UnlimitedClassIfication
{
    /**
     * 地区信息.
     *
     * @return array.
     */
    function area ()
    {
        return  array(
            1 => array(
                2 => "北京",
                3 => "山西"
            ),
            2 => array(
                4 =>"北京",
            ),
            3 => array(
                5 => "太原",
                6 => "晋中"
            ),
            4 => array(
                7 => "朝阳",
                8 => "海淀"
            ),
            5 => array(
                9 => "清徐",
                10 => "小店",
            ),
            6 => array(
                11 => "介休",
                12 => "太谷"
            )
        );
    }

    /**
     * 获取一级分类.
     *
     * @return return
     */
    function getArea ()
    {
        $area = $this->area();

        return $area[1];
    }

    /**
     * 三级联动.
     *
     * @param int $type 分类标识.
     *
     * @return string
     */
    function getUnlimitedClassIfication ($type)
    {
        header("Content-type: text/html; charset=utf-8");

        $area = $this->area();
        if (isset($area[$type])) {
            $content = "<option value=0>请选择</option>";
            foreach ($area[$type] as $k => $v) {
                $content .= "<option value='{$k}'>{$v}</option>";
            }
            $return = array("status" => 1, "mess" => "", "data" => $content);;
        } else {
            $return = array("status" => 0, "mess" => "该分类不存在子分类", "data" => array());
        }

        echo json_encode($return);
    }

}

if (isset($_GET['flag'])) {
    $type = $_GET['type'];
    $object = new UnlimitedClassIfication();
    $object->getUnlimitedClassIfication($type);
}

访问index.php  想要的效果这就出来了!!!




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
之前从网上找的三级联动都太老了,数据也都是很久之前的数据,所以自己把从国家统计局扒下来的省市县三级联动数据做了整理,目前最新的三级联动,童叟无欺。大家看北京市和天津市的几个分区就知道是最新的了。 INSERT INTO `address` VALUES (1, '110000', 0, '北京市', 1); INSERT INTO `address` VALUES (2, '110100', 110000, '市辖区', 2); INSERT INTO `address` VALUES (3, '110101', 110100, '东城区', 3); INSERT INTO `address` VALUES (4, '110102', 110100, '西城区', 3); INSERT INTO `address` VALUES (5, '110105', 110100, '朝阳区', 3); INSERT INTO `address` VALUES (6, '110106', 110100, '丰台区', 3); INSERT INTO `address` VALUES (7, '110107', 110100, '石景山区', 3); INSERT INTO `address` VALUES (8, '110108', 110100, '海淀区', 3); INSERT INTO `address` VALUES (9, '110109', 110100, '门头沟区', 3); INSERT INTO `address` VALUES (10, '110111', 110100, '房山区', 3); INSERT INTO `address` VALUES (11, '110112', 110100, '通州区', 3); INSERT INTO `address` VALUES (12, '110113', 110100, '顺义区', 3); INSERT INTO `address` VALUES (13, '110114', 110100, '昌平区', 3); INSERT INTO `address` VALUES (14, '110115', 110100, '大兴区', 3); INSERT INTO `address` VALUES (15, '110116', 110100, '怀柔区', 3); INSERT INTO `address` VALUES (16, '110117', 110100, '平谷区', 3); INSERT INTO `address` VALUES (17, '110118', 110100, '密云区', 3); INSERT INTO `address` VALUES (18, '110119', 110100, '延庆区', 3); INSERT INTO `address` VALUES (19, '120000', 0, '天津市', 1); INSERT INTO `address` VALUES (20, '120100', 120000, '市辖区', 2); INSERT INTO `address` VALUES (21, '120101', 120100, '和平区', 3); INSERT INTO `address` VALUES (22, '120102', 120100, '河东区', 3); INSERT INTO `address` VALUES (23, '120103', 120100, '河西区', 3); INSERT INTO `address` VALUES (24, '120104', 120100, '南开区', 3); INSERT INTO `address` VALUES (25, '120105', 120100, '河北区', 3); INSERT INTO `address` VALUES (26, '120106', 120100, '红桥区', 3); INSERT INTO `address` VALUES (27, '120110', 120100, '东丽区', 3); INSERT INTO `address` VALUES (28, '120111', 120100, '西青区', 3); INSERT INTO `address` VALUES (29, '120112', 120100, '津南区', 3); INSERT INTO `address` VALUES (30, '120113', 120100, '北辰区', 3); INSERT INTO `address` VALUES (31, '120114', 120100, '武清区', 3); INSERT INTO `address` VALUES (32, '120115', 120100, '宝坻区', 3); INSERT INTO `address` VALUES (33, '120116', 120100, '滨海新区', 3); INSERT INTO `address` VALUES (34, '120117', 120100, '宁河区', 3); INSERT INTO `address` VALUES (35, '120118', 120100, '静海区', 3); INSERT INTO `address` VALUES (36, '120119', 120100, '蓟州区', 3);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值