thinkphp留言板例子(多条件查询)
登录:
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" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
<title>登录页面</title>
<style type="text/css">
*{ margin:0px auto; padding:0px}
</style>
</head>
<body>
<div>用户名:<input type="text" id="user" /></div>
<div>密码:<input type="password" id="pass" /></div>
<div><input type="button" value="登录" id="btn" /></div>
</body>
<script type="text/javascript">
$("#btn").click(function(){
var user = $("#user").val();
var pass = $("#pass").val();
$.ajax({
url:"__CONTROLLER__/yanzheng",
data:{User:user,Pass:pass},
type:"POST",
dataType:"TEXT",
success: function(data)
{
if(data == "ok")
{
window.location.href= "__MODULE__/Main/xianshi";//__MODULE__:获取模块所在的路径
}
}
});
});
</script>
</html>
LoginController.class.php
<?php
namespace Liuyan\Controller;
use Think\Controller;
class LoginController extends Controller
{
public function login()
{
$this->show();
}
public function yanzheng()
{ /*echo "<script type='text/javascript'>alert('aaa');</script>";*/
$n = D("Yuangong");
$uid = $_POST["User"];
$pwd = $_POST["Pass"];
$sql = "select pass from yuangong where user='{$uid}'";
$r = $n->query($sql);
//var_dump($r[0][pass]);
if(!empty($r[0][pass]) && $r[0][pass]==$pwd) //$r是一个二维数组,$r[0][pass]取出密码(string类型)
{
session("user",$uid); //登录之后,存session
$this->ajaxReturn("ok","eval"); //登录成功,ajax返回ok到login.html页面,进行下一步操作
}
else if(empty($r[0][pass]) || $r[0][pass] != $pwd)//如果密码为空或者输入的密码和数据库中此用户名的密码不匹配,返回登录页面
{
$this->redirect("Liuyan/Login/login","array()",3,"请登录...");
}
}
}
ParentController.class.php:中间过渡控制器;parent::__construct(); //在构造函数里面加这一句,防止报错
<?php
namespace Liuyan\Controller;
use Think\Controller;
class ParentController extends Controller
{
public function __construct()
{
parent::__construct(); //在构造函数里面加这一句,防止报错
if(session('?user'))
{
}
else
{
$this->redirect('Liuyan/Login/login',array(),3,'请登录...');
}
}
}
主页面:xianshi.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" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script><!--引入jQuery文件-->
<title>主页面 </title>
<style type="text/css">
*{ margin:0px auto; padding:0px}
</style>
</head>
<body>
<div>
<div style="float:left">
<a href="__CONTROLLER__/xiugai"><h1>发布信息</h1></a>
</div>
<div style="float:left; margin-left:30px">
<a href="__CONTROLLER__/qing" id="aa"><h1>退出系统</h1></a>
</div>
</div><br /><br /><br />
<div>
<span><h3>留言信息</h3></span>
<table width="60%" border="1" cellpadding="0" cellspacing="0" id="tb">
</table>
</div>
<div style="height:20px;">{$btn}</div>
<script type="text/javascript">
$(document).ready(function(e) {
$.ajax({
url:"__CONTROLLER__/yemian",
data:{},
type:"POST",
dataType:"JSON",
success: function(data)
{
var str = "<tr><td>发送人</td><td>发送时间</td><td>接收人</td><td>信息内容</td></tr>";
for(a in data) //JSON接受循环显示数据方法
{
str+="<tr><td>"+data[a].sender+"</td><td>"+data[a].times+"</td><td>"+data[a].recever+"</td><td>"+data[a].comment+"</td></tr>";
}
$("#tb").append(str);
}
});
});
</script>
</body>
</html>
修改页面:xiugai.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" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script><!--引入jQuery文件-->
<title>发布信息</title>
<style type="text/css">
*{ margin:0px auto; padding:0px}
</style>
</head>
<body>
<div>
<div style="float:left">
<a href="__CONTROLLER__/xianshi"><h1>查看信息</h1></a>
</div>
<div style="float:left; margin-left:30px">
<a href="__CONTROLLER__/qing" id="aa"><h1>退出系统</h1></a>
</div>
</div><br /><br /><br />
<div>
<div>
信息发送:
</div>
<div>
<div>
<span>接收人:</span>
<select id="inp">
<foreach name="a" item="v" >
<option>{$v.firend}</option>
</foreach>
</select>
</div>
<div>
<span>信息内容:</span><textarea name="comment" id="tx"></textarea>
</div>
</div>
<div><input type="button" value="发送" id="btn" /><input type="reset" value="复位" /></div>
</div>
<script type="text/javascript">
$("#btn").click(function(){
var inp = $("#inp").val();
var tx = $("#tx").val();
$.ajax({
url:"__CONTROLLER__/addxian",
data:{inp:inp,tx:tx},
type:"POST",
dataType:"TEXT",
success: function(data)
{
if(data == 'ok')
{
window.location.href="__CONTROLLER__/xianshi";
}
else if(data=="no")
{
alert("您输入的内容不能为空");
}
else
{
window.location.href="__CONTROLLER__/xiugai";
}
}
});
});
</script>
</body>
</html>
主控制器(显示和修改):MainController.class.php
<?php
namespace Liuyan\Controller;
use Liuyan\Controller\ParentController;
class MainController extends ParentController
{
public function xianshi()
{
$this->show();
}
/*public function yemian()//按钮注册不到html页面,若要实现分页,需要注册页面再显示($this->show();)
{
$n = D("liuyan");
$zs = $n->count(); //求数据总数
$p = new \Liuyan\fzl\Page($zs,3);
$attr = $n->limit($p->limit)->select(); //echo $p->limit;输出为0,2,直接放到$n->limit()中
$btndiv = $p->fpage(); //翻页按钮
$this->assign("btn",$btndiv);//翻页按钮注册到前台显示
$this->ajaxReturn($attr);
} */
public function yemian()//模糊查询
{
$km = $_POST["km"];
$kt = $_POST["kt"];
$n = D("liuyan");
$sql = "select * from liuyan where recever like '%{$km}%' and comment like '%{$kt}%'";
$attr = $n->query($sql);
$this->ajaxReturn($attr);
}
public function xiugai() //发布信息页面收件人下拉列表显示
{
$n = D("Firend");
$a = $n->select();
$this->assign("a",$a);
$this->show();
}
public function addxian() //$data["ids"]:添加到数据库的列数据
{
$data["Ids"]="";
$data["Sender"] = session("user");
$data["Recever"] = $_POST["inp"];
$data["Times"] = date("Y-m-d H:i:s");
$data["Comment"] = $_POST["tx"];
$data["States"]="";
$n = D("Liuyan");
if(empty($_POST["inp"]) || empty($_POST["tx"]))
{
echo "no";
}
else
{
$r = $n->add($data); //添加数据库
if($r)
{
echo "ok";
}
}
}
public function qing() //点击退出系统,清session,跳转到登录页面,
{
session(null);
$this->redirect("Liuyan/Login/login",array(),0);
}
}
__________
thinkphp留言板例子(多条件查询)的更多相关文章
- PHP基础知识总结(四) 留言板例子 知识应用
1.留言板显示页面:note.php <?php $host = "127.0.0.1"; $user = "root"; $pwd = "zs ...
- thinkphp留言板开发笔记 1 - 新的
关于php数组的排序函数的总结: 有很多种排序方式和排序规则: 正常排序和反向排序, 使用 -r来表示 排序时是否考虑索引/下标, 如果考虑则加上-a, a=associate. sort是按值来排序 ...
- thinkphp where()条件查询
今天来给大家讲下查询最常用但也是最复杂的where方法,where方法也属于模型类的连贯操作方法之一,主要用于查询和操作条件的设置.where方法的用法是ThinkPHP查询语言的精髓,也是Think ...
- ThinkPHP中 按条件查询后列表显示
最近在项目中遇到了需要根据下拉框的条件筛选出符合条件的数据,然后进行列表显示的问题. 在ThinkPHP中进行列表显示的传统过程:通过在后台控制器中查询出数据,然后通过$this->assign ...
- JavaWeb 例子 JDBC+JSP登陆注册留言板
注册页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
- thinkphp分页+条件查询
最近项目上面有一个带条件查询的分页列表,一开始form用的post,点击第二页就没有跳转成功,原因是分页是get请求,post数据链接到其他页面就会被清除. 解决办法: 1.form表单method= ...
- 【weiphp微信开发教程】留言板插件开发详解
基于weiphp框架的留言板插件教程: 1.功能分析 传统的留言板应该具有发布留言.查看留言.回复留言.管理留言等功能,本教程开发的是最基本的留言板,仅包含发布留言和查看留言两个功能,根据功能用boo ...
- 动态多条件查询分页以及排序(一)--MVC与Entity Framework版url分页版
一.前言 多条件查询分页以及排序 每个系统里都会有这个的代码 做好这块 可以大大提高开发效率 所以博主分享下自己的6个版本的 多条件查询分页以及排序 二.目前状况 不论是ado.net 还是EF ...
- flask实战-留言板-Web程序开发流程
Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...
随机推荐
- 精简的网站reset 和 css通用样式库
参考链接:http://www.zhangxinxu.com/wordpress/2010/07/我是如何对网站css进行架构的/ reset.css body{ line-height:1.4; c ...
- EF框架的三种工作方式
EF框架step by step(1)—Database-First EF框架step by step(2)—Model-First EF框架step by step(3)—Code-First 通过 ...
- Angular2 组件
1. 组件说明 Angular2 组件是构成Angular2应用程序的核心部分,Angualr2应用程序本质上来说就是一个组件树,Angular2组件一般由模块,注解,元数据以及组件类组成,实现组件类 ...
- Jquery点击本身,修改出本身之外的其他同级元素的样式
1.引用Jquyer库 2.Jquery代码: <script type="text/javascript"> $(function () { slidColor('d ...
- Nginx与Apache的比较
Nginx与Apache的比较 Nginx相对于Apache的优点 轻量级.同样起web服务,比apache占用更少的资源和内存 抗并发.nginx处理请求是异步非阻塞,而apache则是阻塞型.在高 ...
- Linux与Windows xp操作系统启动过程
Linux启动过程: 第一步,加载BIOS,当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备 ...
- 浅析python 中__name__ = '__main__' 的作用
引用http://www.jb51.net/article/51892.htm 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码 ...
- 《DSP using MATLAB》示例Example5.8
代码: n = [0:1:99]; x = cos(0.48*pi*n) + cos(0.52*pi*n); n1 = [0:1:9]; y1 = x(1:1:10); % N = 10 figure ...
- 超详细的Xcode代码格式化教程,可自定义样式
为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangF ...
- Unity Standard Assets 简介之 Characters
这篇介绍Characters资源包.包含三个文件夹:FirstPersonCharacter.RollerBall.ThirdPersonCharacter. FirstPersonCharacter ...