在thinkphp中使用省市县三级菜单联动
可以在 http://download.csdn.net/detail/u013443768/7725041 下载示例代码,代码是别人写的,如果你很熟悉thinkphp,那么不继续往下看你也能完成;
感谢上传代码的那位,省下了我时间自己写菜单联动。(该下载的代码是thinkphp3.1以下版本的,和3.2版本区别不大)
1、下载的压缩包里,有个hzh_region.sql,是用来生成省市县的建表语句,用Mysql工具建好表之后,表是这样的:(该sql文件有一处语法错误,去掉某个建表时的逗号即可)
在你的前端模板里,比如Index/index里,输入代码如下:(注意两个需要引入的js文件,移植时请一并带过去)
<html> <head> <script type="text/javascript" src="__PUBLIC__/js/jquery.js"></script> <script type="text/javascript" src="__PUBLIC__/js/region.js"></script> </head> <body> <select name="province" id="province" onchange="loadRegion("province",2,"city","{:U("Ajax/getRegion")}");"> <option value="0" selected>省份/直辖市</option><volist name="province" id="vo"> <option value="{$vo.id}" >{$vo.name}</option></volist> </select> <select name="city" id="city" onchange="loadRegion("city",3,"town","{:U("Ajax/getRegion")}");"> <option value="0">市/县</option> </select> <select name="town" id="town"> <option value="0">镇/区</option> </select> </body> </html>
然后在你的Index控制器的index方法,输入这些代码:
<span style="font-size:14px;"> public function index() { $province = M("Region")->where ( array("pid"=>1) )->select (); $this->assign("province",$province); $this->display(); }</span>
然后再新建一个叫做Ajax的控制器(在index模板代码里可以看到ajax请求发送到了该控制器)
<span style="font-size:14px;"> public function getRegion(){ $Region=M("Region"); $map["pid"]=$_REQUEST["pid"]; $map["type"]=$_REQUEST["type"]; $list=$Region->where($map)->select(); echo json_encode($list); }</span>
至此,在浏览器打开Index/index时,可以看到省市县三级菜单联动了。(别忘了改你的conf目录下数据库配置项)
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: php移动文件或者递归移动文件夹
- 下一篇: 多维数组json_encode之后产生对象而不是数组问题