入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

在thinkphp中使用省市县三级菜单联动

创建时间:2016-03-12 投稿人: 浏览次数:2755

可以在   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。