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程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...
随机推荐
- SQL Server 日期和时间函数
http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html 1.常用日期方法(下面的GetDate() = '2006-11-08 ...
- div自定义下拉框
因为原生的下拉框不能修改其属性,很难美化下拉框. 所以自己用div简单自定义了一下下拉框,想美化直接修改css即可 <!DOCTYPE html> <html lang=" ...
- spark伪分布式安装
一,在官网下载对应的版本http://spark.apache.org/downloads.html 二在linux中解压下来的spark包 三:配置环境变量 (1)在/etc/profi ...
- MongoDB replication set副本集(主从复制)(8)(转)
转载地址:http://www.cnblogs.com/huangxincheng/p/4870557.html replicattion set 就是多台服务器维护相同的数据副本,提高服务器的可用性 ...
- hdu 4547(LCA)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4547 思路:这题的本质还是LCA问题,但是需要注意的地方有: 1.如果Q中u,v的lca为u,那么只需 ...
- pyqt5 开发环境
pyqt5 pycharm mac下开发环境 brew install python3 安装python3 brew install pyqt5 配置pycharm http://blog.csdn. ...
- VMware桥接模式无法自动化获取IP的解决方法
虚拟机桥接无法自动获取IP的解决方法 在虚拟机VM里面装了centos系统,网卡选用桥接方式. 刚开始的时候还能自动获取到IP地址,突然有一天IP消失了,再怎么重启都无法获取IP地址.因为之前是可以获 ...
- WebRTC APM音频处理流程概述
本文主要介绍WebRTC的APM. 现在主要介绍一下audio_processing.h. 首先插入了几个类,这些都是audio_processing的核心模块. class AudioFrame; ...
- js文件上传
DOM: <form id="clueForm" class="insert-dialog" action="/xxx/xxx"met ...
- android--访问网络权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>