在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之后产生对象而不是数组问题
