tthinkphp对于ajax的调用及session的用法

一、ajax对于php是非常实用的一种方法,那么在thinkphp框架中ajax是不是一样好用呢?答案是肯定的。thinkphp针对ajax也有自己独特的用法:

首先我们在自己建的Admin文件下建立一个Index文件夹,然后在这个文件夹里边建一个ceshi.html文件,要用ajax就要用到jquery文件,所以我们要将jquery文件复制到Public文件夹下进行调用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js">//调用jquery</script>
</head>

<body>
    <select id ="leibie">
    </select>
</body>
<script>
    $.ajax({
        url:"__CONTROLLER__/shuju",
        dataType:"JSON",
        success:function(data){
            var str = "";
            for( var k in data){
                str = str+"<option value=‘"+data[k].lbid+"‘>"+data[k].lbname+"</option>";
            }
            $("#leibie").html(str);
        }
    })
</script>
</html>

然后我们在Controller文件夹内新建一个IndexController.class.php的文件,在里边添加ceshi方法和shuju方法:

<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller{
    public function index(){
        echo "欢迎使用Thinkphp";
    }
        public function ceshi(){
            $this->show();
        }
        public function shuju(){
                $n = M("leibie");//创建leibie表模型
                $arr = $n->select();
                $this->ajaxReturn($arr);//调该方法返回数据
        }
    }

看一下结果:

这就是thinkphp中ajax的用法,非常方便实用。

二、session在thinkphp中的使用,用于验证用户是否登录:

在thinkphp中session不用手动开启,默认就是开启的:

首先在Cotroller文件夹内建一个LoginController.class.php

<?php
namespace Home\Controller;
use Think\Controller;
class LoginController extends Controller{
    public function login(){
        if(empty($_POST)){
            $this->show();
        }
        else{
            $uid = $_POST["uid"];
            $pwd = $_POST["pwd"];
            $n=M("users");
            $arr = $n->find($uid);
            if($arr["pwd"]==$pwd && !empty($pwd)){//验证密码
                session("uid","$uid");
            }
            else{
                echo "登录失败";
            }
        }
    }
}

然后在View文件夹下新建一个login.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>

<body>
  <h1>登录页面</h1>
    <form action="__ACTION__" method="post">
        <div>用户名:<input type="text" name="uid"></div>
        <div>密码:<input type="password" name="pwd"></div>
        <input type="submit" value="登录">
    </form>
</body>
</html>

然后最关键的是需要建立一个父类BaseController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class BaseController extends Controller{
    public function __construct(){
        //调用父类构造
        parent::__construct();
        //写session控制
        if(session("?uid")){
        }else{
            $this->redirect("Login/login");
        }
    }
}

然后我们其他所有的控制器都继承新建的这个BaseController就可以了:

<?php
namespace Admin\Controller;
use Home\Controller\BaseController;
class IndexController extends BaseController{
    public function index(){
        echo "欢迎使用Thinkphp";
    }
        public function ceshi(){
            $this->show();
        }
        public function shuju(){
                $n = M("leibie");//创建leibie表模型
                $arr = $n->select();
                $this->ajaxReturn($arr);//调该方法返回数据,如果是字符串,后边加eval
        }
            }
时间: 2024-10-14 12:23:38

tthinkphp对于ajax的调用及session的用法的相关文章

ajax如何调用后台定义的方法

ajax如何调用后台定义的方法:由于ajax的独特优势,使得它在当前大量网站得到了广泛的应用,下面就介绍一下ajax如何调用后台定义的函数,虽然比较简单,不过希望能够给初学者带来一定的帮助,代码如下:1.首先我们先创建一个antzone.aspx页面.2.在它的cs文件中创建如下函数: public static string mytest(string first, string second) { return return first+second; } 2.html代码如下: <form

LigerUi-js中ajax前台调用后台Json格式转换!(已解决)

LigerUi-js中ajax前台调用后台Json格式转换!(已解决) success: function (data, status) { var aaa = JSON2.stringify(data); alert(aaa ); } LigerUi-js中ajax前台调用后台Json格式转换!(已解决),布布扣,bubuko.com

HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式!

原文:HTML5+Ajax+Jquery调用Google搜索API实现搜索引擎,支持web,image,news,vedio4种模式! 源代码下载地址:http://www.zuidaima.com/share/1550463589878784.htm web,image,news,vedio4种模式! 已经拿javaniu作出测试,下载即可查看 

jQuery AJAX实现调用页面后台方法

1.新建demo.aspx页面.2.首先在该页面的后台文件demos.aspx.cs中添加引用. using System.Web.Services; 3.无参数的方法调用. 大家注意了,这个版本不能低于.net framework 2.0.2.0已下不支持的.后台代码: [WebMethod] public static string SayHello() { return "Hello Ajax!"; } JS代码: $(function() { $("#btnOK&qu

jquery ajax异步调用

写程序的第一步都要知其然,至于知其所以然就要看个人的爱好了.下面说一下web开发中经常用的ajax. 这里是用的jquery框架实现的ajax异步调用.废话少说先上代码.(asp.net开发) var x=""; var y=""; $.ajax({ type: "post", url: "../ashx/RemoveHoliday.ashx", dataType: "json", data: { parm

ajax中调用回调函数

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="javascript:void(0);" id="send">test</a> </bo

ajax 请求调用问题

http://localhost/dev/list 和  http://127.0.0.1/dev/list 最近在架构整体常规通用系统的解决方案,遭遇AJAX请求不执行的问题,刚开始以为Spring Security权限设置那里有问题 ajax 请求调用问题: 问题情景: 在http://127.0.0.1/dev/list页面中调用了http://localhost/dev/listUser 接口,,, 使用chrome显示跨域, response for preflight is inva

【原创经验分享】JQuery(Ajax)调用WCF服务

最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚开始入门,就没觉得多大区别啦,这次写的东西跟WebService一样,我们写了一个WCF,那当然就是要用的,要用的话,当然不能只能在.NET平台下用了,必须跨平台呀,所以,Ajax能调用,这个基本的要求就必须要实现的了,所以,本次经验分享就是写JQuery的Ajax调用WCF的服务了.   一.新建

跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示])

跟我一起学extjs5(31--加入模块和菜单定义[4前台通过ajax来调用数据与展示]) 上一节已经把到现在为止的后台做好了,启动tomcat ,在浏览器中打入网址:http://localhost:8888/app/applicationinfo.do,就可以取得系统参数值.下面看一下在chrome调试器中的结果. 到此为止,后台暂告一段落,又要开始对前台的extjs的程序进行修改了. 首先要修改的是MainModel.js,在此js文件中加入构造函数: constructor : func