ThinkPHP分组机制和页面跳转及Ajax
1、前台和后台的应用配置1多应用下的配置

2、//数据库的配置'DB_DSN'=>'mysql://root:1234@localhost:3306/thinkphp',//表前缀设置'DB_PREFIX'=>'tp_',这些配置是前台的那么后台的呢?要将前台的配置赋值到后台Admin中如果一天数据库发生了变化呢?能不能用公共文件呢?在项目文件名下新建一个配置文件config.php<?phpreturnarray(//'配置项'=>'配置值'//配置定界符'TMPL_L_DELIM'=>'<{',//修改左定界符'TMPL_R_DELIM'=>'}>',//修改有定界符//数据库的配置'DB_DSN'=>'mysql://root:1234@localhost:3306/thinkphp',//表前缀设置'DB_PREFIX'=>'tp_',);?>然后在前台和后台的配置文件config.php写入<?php$arr=include'./config.php';//这里当前目录是项目文件的入口文件的相对路径//调用了公共文件的配置,将其赋值给一个数组。$arr2=array(//'配置项'=>'配置值');//合并两个数组文件,返回的是一个数组,这样就可以使用了公共文件returnarray_merge($arr,$arr2);?>


3、将多个项目合并,前台和后台的应用合并<?phpheader("Content-Type:text/html;charset=utf-8");//1确定一个前台和后台分组应用的名称Appdefine("APP_NAME","App");//2确定应用路径,后面的反斜杠必须加上,否组目录凌乱//还有一个Home前缀define("APP_PATH","./App/");//规定所有目录的名称首字母大写//3开启调试模式,项目上线了就关闭define("APP_DEBUG",true);//4引入应用核心文件,严格区分大小写require"./ThinkPHP/ThinkPHP.php";?>

4、例如我们把当前的项目分成Home和Admin两个组,分别表示前台和后台功能,那么只需要在项目配置中添加下面的配置:1'APP_GROUP_LIST'=>'Home,Admin',//项目分组设定2'DEFAULT_GROUP'=>'Home',//默认分组多个分组之间用逗号分隔即可,默认分组只允许设置一个。然后在APP的lib的Actioon中新建这两个文件设置


5、如果我们用使用前台和后台各自的配置项和公共的配置项目

6、建议使用应用的风格,不使用分组的方式

7、2页面的跳转将数据库的东西展示出来<html><metacharset="utf-8"/><styletype="text/css">#one{margin-top:45px;}</style><body><centerid="one"><h1align="center">用户信息</h1><tableborder="1"cellpadding="1"cellspacing="0"width="500"align="center"><tralign="center"><td>id</td><td>用户名</td><td>性别</td></tr><foreachname="arr"item="v"><tralign="center"><td><{$v.id}></td><td><ahref="__URL__/info?id=<{$v.id}>"><{$v.username}></a></td><td><!--第一种方式用switch写--><!--<switchname="v.sex"><casevalue="1">男</case><casevalue="0">女</case></switch>--><!--第二种方式用if--><ifcondition="$v.sexeq1">男<else/>女</if></td></tr></foreach></table></center></body></html>


8、if($m){$this->assign("list",$m);$this->display(); }else{ $this->error("数据找不到!"); }跳转是一个模版文件

9、success返回成功的信息1$User=M('User');//实例化User对象2$result=$User->add($data);3if($result){4//设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER']5$this->success('新增成功','User/list');6}else{7//错误页面的默认跳转页面是返回前一页,通常不需要设置8$this->error('新增失败');9}if($m){$this->assign("list",$m);$this->display(); }else{ $this->error("数据找不到!","index"); //跳转的主页中去 }
10、页面重定向Action类的redirect方法可以实现页面的重定向功能。redirect方法的参数用法和U函数的用法一致(参考上面的URL生成部分),例如:1//重定向到New模块的Category操作2$this->redirect('New/category',array('cate_id'=>2),5,'页面跳转中...');上面的用法是停留5秒后跳转到News模块的category操作,并且显示页面跳转中字样,重定向后会改变当前的URL地址。如果你仅仅是想重定向要一个指定的URL地址,而不是到某个模块的操作方法,可以直接使用redirect方法重定向,例如:3//重定向到指定的URL地址4redirect('/New/category/cate_id/2',5,'页面跳转中...')Redirect方法的第一个参数是一个URL地址。$this->redirect("Index/index","",3,"3秒后跳回到首页...");

11、Ajax在项目中的使用publicfunctiongetAjax(){//echo"aaa";$this->ajaxReturn("这里是我要的信息","信息1",1); }<html><metacharset="utf-8"/><styletype="text/css">#one{margin-top:45px;}</style><scripttype="text/javascript"src="__PUBLIC__/Js/jquery.js"></script><scripttype="text/javascript">$(function(){$("#bt").bind('click',function(){//alert("ok");$.get('__URL__/getAjax',function(jdata){if(jdata.status==1){ //alert(jdata.data);$('div#two').html(jdata.data);}});});});</script><body><centerid="one"><h1>AJAX应用</h1><divstyle="height:45px;background:green;"id="two"></div><buttonid="bt">点击</button><scripttype="text/javascript">document.write(newDate());</script></center></body></html>
