• thinkphp 分组、页面跳转与ajax


    本节课大纲:
    一、多应用配置技巧
    二、使用分组
    三、页面跳转
    	$this->success('查询成功',U('User/test'));
    	$this->redirect('User/test','',5,'页面正在跳');
    四、Ajax技巧
    
    
    前后台公用公共配置文件:
    
    $ pwd
    /cygdrive/c/wamp/www/thinkphp5/Admin/Conf
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5/Admin/Conf
    $ ls
    config.php
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5/Admin/Conf
    $ cat config.php
    <?php
    $arr=include './config.php';
    
    $arr2=array(
    
    );
    return  array_merge($arr,$arr2);
    
    
    ?>
    
    // 当前目录下的config.php,这个当前是指主入口的路径:
    
    
    $arr=include './config.php';
    
    
    
    公用配置文件:
    $ pwd
    /cygdrive/c/wamp/www/thinkphp5
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5
    $ ls -ltr config.php
    -rwxrwx---+ 1 Administrators None 393 五月  9 13:14 config.php
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5
    $ cat config.php
    <?php
    return array(
            //'配置项'=>'配置值'
            'TMPL_L_DELIM'=>'<{',   //配置左定界符
            'TMPL_R_DELIM'=>'}>',    //配置右定界符
            'DB_PREFIX'=>'',     //设置表前缀
            'DB_DSN'=>'mysql://root:1234567@192.168.32.79:3306/devops', //DSN方式配置数据库信息
            'SHOW_PAGE_TRACE'=>true,//开启页面Trace
            /* 'URL_ROUTER_ON'=>true,
            'URL_ROUTE_RULES'=>array(
             ':id/:num'=>'Index/index',
             ), */
    );
    ?>
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5
    
    
    
    
    
    thinkphp 分组机制:
    
    <?php
    //1.确定应用名称 Home
    
    define('APP_NAME','App');
    
    //2. 确定应用路径  ./Home 当前目录 index.php的当前目录 前台文件夹
    
    define('APP_PATH','./App/');
    //开启调试模式
    
     define('APP_DEBUG',true);
    //4.引入核心文件 include 引入的东西错误 代码继续运行  require 出错立即结束
    
    require './ThinkPHP/ThinkPHP.php';
    
    ?>
    
    
    
    
    'APP_GROUP_LIST' => 'Home,Admin', //项目分组设定
    'DEFAULT_GROUP'  => 'Home', //默认分组
    
    
    
    
    
    在同一个应用下,再分不同的应用:
    
    $ pwd
    /cygdrive/c/wamp/www/thinkphp6/App/Lib/Action
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp6/App/Lib/Action
    $ ls
    Admin  Home  IndexAction.class.php
    
    
    整个应用叫app应用:
    
    <?php
    //1.确定应用名称 Home
    
    define('APP_NAME','App');
    
    //2. 确定应用路径  ./Home 当前目录 index.php的当前目录 前台文件夹
    
    define('APP_PATH','./App/');
    //开启调试模式
    
     define('APP_DEBUG',true);
    //4.引入核心文件 include 引入的东西错误 代码继续运行  require 出错立即结束
    
    require './ThinkPHP/ThinkPHP.php';
    
    ?>
    
    
    
    
    
    
    推荐使用分应用的方式,而不是分组
    
    
    分应用情况下的访问方式,多应用配置技巧:
    
    
    $ pwd
    /cygdrive/c/wamp/www/thinkphp5
    
    Administrator@QCEE61NZ66FEX2D /cygdrive/c/wamp/www/thinkphp5
    $ ls
    Admin  admin.php  config.php  Home  index.php  ThinkPHP
    
    
    Home前台应用文件夹:
    
    Admin后台应用文件夹:
    
    http://localhost/thinkphp5/admin.php
    
    http://localhost/thinkphp5/index.php
    
    
    
    //页面跳转:
    
    <?php
    // 本类由系统自动生成,仅供测试用途
    class IndexAction extends Action {
        public function index(){
    	echo "come in Home!";
    	$user=M('user');
    	$arr=$user->select();
    	dump($arr);
    	//分配给前台,表示为list 
    	$this->assign('list','$arr');
    	$this->display();
        }
    }
    
    
    
    前端页面:
    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
     </head>
     <body>
      
      <table border='1' width='500'>
      <foreach name='list' item='vo'>
    
      <tr><td><{$vo.username}></td></tr>
    
      </foreach>
    
      </table>
     </body>
    </html>
    
    
    //超链接:
    
    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
     </head>
     <body>
      
      <table border='1' width='500'>
      <foreach name='list' item='vo'>
    
      <tr><td><a href="__URL__/info?id=<{$vo.id}>"><{$vo.username}></a></td></tr>
    
      </foreach>
    
      </table>
     </body>
    </html>
    
    
    
    
    <?php
    // 本类由系统自动生成,仅供测试用途
    class IndexAction extends Action {
        public function index(){
    	echo "come in Home!";
    	$user=M('user');
    	$arr=$user->select();
    	dump($arr);
    	//分配给前台,表示为list 
    	$this->assign('list',$arr);
    	$this->display();
        }
    	
    	public function info(){
    		$id=$_GET['id'];
    		$user=M('user');
    		$arr=$user->find($id);
    		dump($arr);
    		if ($arr){
    			$this->success('index');
    		}
    		else {
    			//失败后自动跳转到上一页
    			$this->error('查询失败');
    		}
    		$this->assign('list',$arr);
    		$this->display();
    	}
    }
    
    
    //redirect 跳转:
    
    <?php
    // 本类由系统自动生成,仅供测试用途
    class IndexAction extends Action {
        public function index(){
    	echo "come in Home!";
    	$user=M('user');
    	$arr=$user->select();
    	dump($arr);
    	//分配给前台,表示为list 
    	$this->assign('list',$arr);
    	$this->display();
        }
    	
    	public function info(){
    		$id=$_GET['id'];
    		$user=M('user');
    		$arr=$user->find(100);
    		dump($arr);
    		if ($arr){
    			$this->success('index');
    		}
    		else {
    			//失败后自动跳转到上一页
    			$this->redirect('User/index');
    		}
    		$this->assign('list',$arr);
    		$this->display();
    	}
    }
    
    
    跳转到:
    http://localhost/thinkphp5/index.php/User/index
    
    User/index 页面
    
    
    
    Ajax 技巧:
    
    
    
    在框架里面,脚本都是被方法所取代
    
    
    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <title>Document</title>
      <script src="__PUBLIC__/Js/jquery.js"></script>
      <script>
      $(function(){
      $('button').bind('click',function(){
     
    	$.get('__URL__/getAjax',function(jdata){
    	<!--alert (JSON.stringify(data));-->
    	if (jdata.status==1){
    	alert(jdata.data);
    	}
      });
      });
       
       });
    
      
      </script>
     </head>
     <body>
       <div style='height:50px;background:yellow' id='did'></div>
       <button>点击</button>
       <script>
         document.write(new Date());
    	 </script>
     </body>
    </html>
    
    
    <?php
    class IndexAction extends Action {
    	
    	public function index(){
    		$this->display();
    	}
    	
    	public function getAjax(){
    		//echo 'aaaaaaa';
    		$this->ajaxReturn('这里是数据','信息1',1);
    	}
    
    }
    

  • 相关阅读:
    Win2019 preview 版本的安装过程
    Windows 下 Docker 的简单学习使用过程之三 创建images 导出images
    Windows 下 Docker 的简单学习使用过程之二 Docker For windows
    Windows 下 Docker 的简单学习使用过程之一 dockertoolbox
    Helm 安装 nginx-ingress 的方法
    libc.so.6被删后导致系统无法使用的原因及解决方法
    centos6.x升级glibc-2.17
    jmx远程访问权限设置
    ngxtop
    nginx: [emerg] unknown directive "stub_status" in /usr/local/openresty/nginx/conf/conf.d/ngx_metric.conf:19
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350813.html
Copyright © 2020-2023  润新知