Yii2中省市三级联动(栏目联动)
先从表的设计开始:
表的结构: CREATE TABLE `global_region` (
`region_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`region_name` varchar(120) NOT NULL DEFAULT '',
`region_type` tinyint(1) NOT NULL DEFAULT '2',
PRIMARY KEY (`region_id`),
KEY `parent_id` (`parent_id`),
KEY `region_type` (`region_type`)
) ENGINE=MyISAM AUTO_INCREMENT=3409 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of global_region
-- ----------------------------
INSERT INTO `global_region` VALUES ('1', '0', '中国', '0');
INSERT INTO `global_region` VALUES ('2', '1', '北京', '1');
INSERT INTO `global_region` VALUES ('3', '1', '安徽', '1');
INSERT INTO `global_region` VALUES ('4', '1', '福建', '1');
INSERT INTO `global_region` VALUES ('5', '1', '甘肃', '1');
INSERT INTO `global_region` VALUES ('6', '1', '广东', '1');
INSERT INTO `global_region` VALUES ('7', '1', '广西', '1');
INSERT INTO `global_region` VALUES ('8', '1', '贵州', '1');
INSERT INTO `global_region` VALUES ('9', '1', '海南', '1');
INSERT INTO `global_region` VALUES ('10', '1', '河北', '1');
INSERT INTO `global_region` VALUES ('11', '1', '河南', '1');
INSERT INTO `global_region` VALUES ('12', '1', '黑龙江', '1'); 这里只贴出来数据库的一部分代码
这个是视图view层代码: <?=$form->field($model, 'provinces')->dropDownList(ArrayHelper::map(common\models\GlobalRegion::find()->where(['region_type'=>1])->asArray()->all(),'region_id','region_name'),
[
'style'=>'width:150px',
'prompt'=>'请选择省',
'onchange'=>'
$.post("index.php?r=user/lists&id='.'"+$(this).val(),function(data){
$("#user-citys").html("<option value=>请选择市</option>");
$("#user-countrys").html("<option value=>请选择县</option>");
$("#user-citys").append(data);
});',
])->label('省份'); ?> <?=$form->field($model, 'citys')->dropDownList(ArrayHelper::map(common\models\GlobalRegion::find()->where(['region_type'=>2])->asArray()->all(),'region_id','region_name'),
[
'style'=>'width:150px',
'prompt'=>'请选择市',
'onchange'=>' $.post("index.php?r=user/lists&id='.'"+$(this).val(),function(data){
$("#user-countrys").html("<option value=>请选择县</option>");
$("#user-countrys").append(data);
});',
])->label('市'); ?> <?=$form->field($model, 'countrys')->dropDownList(ArrayHelper::map(common\models\GlobalRegion::find()->where(['region_type'=>3])->asArray()->all(),'region_id','region_name'),
[
'style'=>'width:150px',
'prompt'=>'请选择县',
'onchange'=>'
$.post("index.php?r=branches/lists&id='.'"+$(this).val(),function(data){ });',
])->label('区/县'); ?> 这里我没有用json,而是直接在后台把option拼出来了,不过我觉得可以试试json,不知道为什么,我用json时遍历时老是出错,回头我再试试
给个建议,用 DAO 而不是 AR 来查询更高效。而且用 DAO 查出来的直接就是数组了
Yii2中省市三级联动(栏目联动)的更多相关文章
- [moka同学笔记]Yii下国家省市三级联动
第一次做省市三级联动时候遇到了坑,感觉还是自己太菜.头疼了很久研究了很久,最后终于发现了问题.大致总结一下思路 在控制器中实例化model,然后在视图中渲染所有国家,当选取国家时候,ajax通过 id ...
- JS实现年月日三级联动+省市区三级联动+国家省市三级联动
开篇随笔:最近项目需要用到关于年月日三级联动以及省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例或者只有单纯的js还不完整,却很难找到详细的具体数据(baidu搜索都 ...
- 基于jQuery+ashx+.net实现三级栏目联动操作
父级ID可以为空以两个编号为一级 可以添加到第四级 table 字段有ID. name .parentNode. childNode等基本属性 selecet parentNode ,len(c ...
- yii2中如何使用modal弹窗之基本使用
作者:白狼 出处:http://www.manks.top/yii2_modal_baseuse.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name ...
- PHP在yii2中封装SuperSlide 幻灯片编写自己的SuperSlideWidget的例子
因为近期给朋友公司做个门户网站,把荒置了6.7年的PHP又重新拾起,发现PHP这些年兴旺多了,很多新的东西看的不明不白,研究了几个框架ZendFramework.thinkphp.Symfony.yi ...
- [moka同学笔记]Yii2中多表关联查询(join、joinwith) (摘录)
表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_name cu ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)
我们用实例来说明这一部分 表结构 现在有客户表.订单表.图书表.作者表, 客户表Customer (id customer_name) 订单表Order (id order_ ...
随机推荐
- tornado 重定向404
方法一: 一度喜欢tornado的我, 一直在尝试寻找自定义404的方法,恰巧在看tornaod的mvc结构的时候看到了解决办法 方法之巧妙令人从心底佩服.后来我克隆一份到自己的github以作备份. ...
- am335x backlight
/****************************************************************************** * am335x backlight * ...
- 使用Grunt构建任务管理脚本(转)
Grunt是构建Web开发的一个系统,但它创建比较困难.在这个指南中,你将学会如何配置Grunt创建一个现代的Web项目.当你完成教程中的配置之后,你的Gruntfile将具有: 从源目录中向目标目录 ...
- MySQL数据库行去重复
1.创立数据表
- Linux下的shell编程入门
通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者 ...
- 新机器,分区为NTFS, 安装 Windows XP、Windows Server 2003 时蓝屏问题,修改为 FAT32 即可
现象:安装刚刚开始就会蓝屏:Ghost版本的也无法正常开机. 原因:硬盘引起,通常是主板的RAID.或STAT的设置引起????? 最直接的原因是安装所在的分区的文件系统格式不正确,为NTFS 解决: ...
- About {DynamicResource {x:Static SystemColors.ControlBrushKey}}
from : http://blog.sina.com.cn/s/blog_749e42850100sahi.html 前提: <system:String x:Key="{Compo ...
- Windows路径操作API函数学习
前言 在VC++开发过程中,经常需要用到一些路径操作,比如拼需要的文件路径,搜索路径中的内容等等.Windows提供了一套关于路径操作的API帮助我们更好的执行这些操作. 路径截断与合并API Pat ...
- [转]ASP.NET MVC 5 - 给数据模型添加校验器
在本节中将会给Movie模型添加验证逻辑.并且确保这些验证规则在用户创建或编辑电影时被执行. 拒绝重复 DRY ASP.NET MVC 的核心设计信条之一是DRY: "不要重复自己(DRY ...
- SDUT -refresh的停车场(栈和队列)
题目描写叙述 refresh近期发了一笔横財,开了一家停车场.因为土地有限,停车场内停车数量有限,可是要求进停车场的车辆过多. 当停车场满时,要进入的车辆会进入便道等待.最先进入便道的车辆会优先 进 ...