thinkphp 网址后台典型页面
知识点:
1.select
a提交后 返回选中项
选中项 value是id 但是要显示name
b遍历和列举两种形式
<select name="class_id" class="left">
<option value="">不限</option>
<volist name="advertise_class" id="vo">
<eq name="vo.id" value="$map.class_id">
<option value="{$vo.id}" selected >{$vo.name}</option>
<else />
<option value="{$vo.id}" >{$vo.name}</option>
</eq>
</volist>
</select>
<select name="sex" class="pull-left">
<option value="">不限</option>
<option value="1" <?php if($map['sex'] == '1'):?>selected="selected"<?php endif;?> >男</option>
<option value="0" <?php if($map['sex'] == '0'):?>selected="selected"<?php endif;?> >女</option>
</select>
2 分页 两种实现方式
方式二
//总页数
$total = $this->adminObj->where($where)->count();
$Page = new \Think\Pages($total, 10);
$data = $this->adminObj->where($where)->limit($Page->first, $Page->listRows)->order('id desc')->select(); $this->assign('page', $Page->show());
3 连表查询,把id转为name
4时间插件的使用
前台代码
<extend name="Public/base" /> {// 导航}
<block name="breadcrumb">
<li class="active">求职者管理</li>
</block> {// 左侧菜单}
<block name="sidebar">
<include file="Public/sidebar" nav="jobSeeker"/>
</block> {// 主体}
<block name="main">
<div class="row-fluid">
<h3 class="header blue lighter smaller">
<form action="{:U('Admin/JobSeeker/index')}" method="get">
<div class="row-fluid dataTables_wrapper">
<!--<div class="span4">-->
<!--<a class="btn btn-primary btn-small" href="{:U('Admin/JobSeeker/add')}" target="_blank"><i class="icon-plus"></i>添加</a>-->
<!--</div>-->
<div class="grid_conent" id="m_search_div">
<div class="grid">
<label class="control-label pull-left">用户名:</label>
<input name="username" value="{$map.username}" type="text" id="search_name" class="pull-left" /> </div>
<div class="grid">
<label class="control-label pull-left">地点:</label>
<select name="address" class="pull-left">
<option value="">不限</option>
<volist name="city_class" id="vo">
<eq name="vo.id" value="$map.address">
<option value="{$vo.id}" selected >{$vo.name}</option>
<else />
<option value="{$vo.id}" >{$vo.name}</option>
</eq>
</volist>
</select> </div>
<div class="grid" style=" width: auto;">
<label class="control-label pull-left">性别:</label>
<select name="sex" class="pull-left">
<option value="">不限</option>
<option value="1" <?php if($map['sex'] == '1'):?>selected="selected"<?php endif;?> >男</option>
<option value="0" <?php if($map['sex'] == '0'):?>selected="selected"<?php endif;?> >女</option>
</select> </div>
<div style="width:auto; float: right; "><button type="submit" class="btn btn-primary btn-small pull-left" id="search_submit"><i ></i>搜索</button></div>
<div class="grid_data" style="margin: 0px 0px 0px 13px;">
<input type="text" name="datetimeEnd" id="datetimeEnd" value="{$map.datetimeEnd}" placeholder="请选择结束日期" class="pull-right" />
<input type="text" name="datetimeStart" id="datetimeStart" value="{$map.datetimeStart}" placeholder="请选择开始日期" class="pull-right" />
<label class="control-label pull-right">日期:</label>
</div> </div>
</div>
</form>
</h3>
<div class="table-header">求职者管理</div>
<div class="dataTables_wrapper" role="grid">
<table id="user_table" class="table table-striped table-bordered table-hover" style="margin-bottom:0px;">
<thead>
<tr>
<th class="center">
<label>
<input type="checkbox" class="ace" />
<span class="lbl"></span>
</label>
</th>
<th>用户名</th>
<th>姓名</th>
<th>性别</th>
<th>email</th>
<th>地点</th>
<th>推荐人才</th>
<th>热门人才</th>
<th>顶级人才</th>
<th>注册时间</th>
<th>操作</th> </tr>
</thead> <tbody> <foreach name="data" item="value">
<tr>
<td class="center">
<label>
<input type="checkbox" class="ace" />
<span class="lbl"></span>
</label>
</td>
<td>{$value.username}</td>
<td>{$value.name}</td>
<td><if condition="$value.sex eq 0">女<elseif condition="$value.sex eq 1"/>男</if></td>
<td>{$value.email}</td>
<td>{$value.address}</td>
<td> <a href="javascript:;" onclick="$.recommend_change('{:U('Admin/JobSeeker/recommend_change', array('id'=>$value['id'],'recommend'=>$value['recommend']))}');" class="green"><eq name="value.recommend" value="0"><img src="__PUBLIC__/HomeStyle/images/img/no.png"/><else/><img src="__PUBLIC__/HomeStyle/images/img/yes.png"/></eq> </a></td>
<td> <a href="javascript:;" onclick="$.hot_change('{:U('Admin/JobSeeker/hot_change', array('id'=>$value['id'],'hot'=>$value['hot']))}');"><eq name="value.hot" value="0"><img src="__PUBLIC__/HomeStyle/images/img/no.png"/><else/><img src="__PUBLIC__/HomeStyle/images/img/yes.png"/></eq> </a></td>
<td> <a href="javascript:;" onclick="$.top_change('{:U('Admin/JobSeeker/top_change', array('id'=>$value['id'],'top'=>$value['top']))}');"><eq name="value.top" value="0"><img src="__PUBLIC__/HomeStyle/images/img/no.png"/><else/><img src="__PUBLIC__/HomeStyle/images/img/yes.png"/></eq> </a></td>
<td>{$value.create_time|date='Y-m-d',###}</td>
<td>
<div class="hidden-phone visible-desktop action-buttons">
<!--<a href="{:U('Admin/JobSeeker/edit', array('id'=>$value['id']))}" class="green" data-rel="tooltip" data-original-title="修改">-->
<!--<i class="icon-pencil bigger-130"></i>-->
<!--</a>--> <a href="javascript:;" onclick="$.del('{:U('Admin/JobSeeker/del', array('id'=>$value['id']))}');" class="red" data-rel="tooltip" data-original-title="删除">
<i class="icon-trash bigger-130"></i>
</a>
</div>
</td> </tr>
</foreach> </tbody>
</table>
<!-- 分页 -->
<div class="row-fluid">
<div class="page">{$page}</div>
</div> </div>
</div>
<p>推荐职位或热门职位√表示是,×表示否,点击取反。</p>
</block> {// js}
<block name="js">
<link rel="stylesheet" href="__PUBLIC__/Assets/css/datepicker.css">
<script src="__PUBLIC__/Assets/js/date-time/bootstrap-datepicker.min.js"></script>
<script src="__PUBLIC__/Assets/js/date-time/locales/bootstrap-datepicker.zh-CN.js"></script>
<script type="text/javascript">
//通过id选择器
$("#datetimeStart").datepicker({
format: 'yyyy-mm-dd',//格式
language: 'zh-CN',//语言
autoclose:true //选择后自动隐藏日历框
});
$("#datetimeEnd").datepicker({
format: 'yyyy-mm-dd',
language: 'zh-CN',
autoclose:true
});
</script>
<script type="text/javascript"> jQuery(function($) {
// 全选框
$('table th input:checkbox').on('click' , function(){
var that = this;
$(this).closest('table').find('tr > td:first-child input:checkbox')
.each(function(){
this.checked = that.checked;
$(this).closest('tr').toggleClass('selected');
});
}); $.extend({ action : function(url, obj)
{
var obj = $(obj).parents('form'); $.ajax({
url : url,
type : 'get',
data : obj.serialize(),
success : function(res)
{
$.lagou.alert(res.msg, res.code, 2);
$.lagou.formHide();
location.reload();
}
});
},
//删除
del : function(url)
{
$.lagou.confirm('确认删除么', function(res){
if (res) {
$.get(url, function(response){
$.lagou.alert(response.msg, response.code, 2);
location.reload();
});
}
});
}, //推荐人才改变事件
recommend_change : function(url)
{
$.get(url, function(response){ $.lagou.alert(response.msg, response.code, 2);
location.reload();
});
}, //热门人才改变事件
hot_change : function(url)
{
$.get(url, function(response){
$.lagou.alert(response.msg, response.code,2);
location.reload();
});
}, //顶级人才改变事件
top_change : function(url)
{
$.get(url, function(response){ $.lagou.alert(response.msg, response.code,2);
location.reload();
});
} }); })
</script>
</block>
后台代码
<?php
/**求职者管理
* Created by PhpStorm.
* User: Administrator
* Date: 2017/4/27
* Time: 13:58
*/ namespace Admin\Controller; class JobSeekerController extends BaseController { protected $usersModel = null;
protected $cityModel=null; public function __construct()
{
parent::__construct(); $this->usersModel = M('Users');
//下拉列表
$this->cityModel=M('CityCategory'); } public function index()
{ // //获取页面中所有name标签的内容
// $map=I();
// //移除$map中所有可以转为false的值,如:false,0,‘0’,arrary(),null,'',
// $a=$map;//array_filter($map);
$a=I();
///搜索条件
//用户名
if(!empty($a['username'])){
$where['username']=array('LIKE','%'.$a['username'].'%');
}
//地点
if(!empty($a['address'])){
$where['address']=array('EQ',$a['address']);
}
//性别
if($a['sex']!=""){
$where['sex']=array('EQ',$a['sex']);
}
//起止时间
if(!empty($a['datetimeStart'])|| !empty($a['datetimeEnd'])){
$start= strtotime($a['datetimeStart']);
$end= strtotime($a['datetimeEnd']);
$where['create_time']=array(array('egt',$start),array('elt',$end),'and');
//var_dump($where['create_time']);
} //分页
$total=$this->usersModel->where($where)->count();
$Page= new \Think\Pages($total,10);
$Page->setConfig('first','首页');
$Page->setConfig('prev','上一页');
$Page->setConfig('next','下一页');
$Page->setConfig('last','尾页');
$show = $Page->show();
//搜索结果
$data=$this->usersModel->where($where)->page(I('get.p',1),10)->order('create_time desc')->join('as u left join lg_city_category as city on u.address=city.id ')->field('u.id,u.username,u.name,u.sex,u.email,u.recommend,u.hot,u.top,u.create_time,city.name as address')->select();
//加载下拉列表
$city_category=$this->cityModel->select();
//输出到模板
//下拉列表
$this->assign('city_class',$city_category);
//其他
$this->assign('map',$a);
$this->assign('page',$show);
$this->assign('data', $data);
$this->display(); } public function details()
{
$data['id'] = I('get.id');
$users = $this->usersModel->where($data)->find();
$cate = Category::getInstance();
$type = $cate->getParent($users['name']);
// $company = $this->comObj->where(array('id'=>$this->uid))->find(); $this->assign('category', $cate->mCategory);
$this->assign('users', $users);
$this->assign('type', $type);
// $this->assign('company', $company);
$this->display(); } public function del(){
$id = I('get.id');
// $id = $_GET['id']; //同上
$rs = $this->usersModel->where('id='.$id)->delete();
if ($rs==0||$rs===false) {
$msg['code'] = 0;
$msg['msg'] = '删除失败';
} else {
$msg['code'] = 1;
$msg['msg'] = '删除成功';
}
$this->ajaxReturn($msg);
} //推荐人才改变事件,如果是则改为否,否则改为是
public function recommend_change()
{
if (IS_AJAX) {
$id = I('get.id');
$recommend = I('get.recommend');
if ($recommend == 0) {
$data['recommend'] = 1;
} else {
$data['recommend'] = 0;
}
$res = $this->usersModel->where('id=' . $id)->save($data);
if ($res === false) {
$msg['code'] = 0;
$msg['msg'] = '操作失败 ';
} else {
$msg['code'] = 1;
$msg['msg'] = '操作成功';
}
$this->ajaxReturn($msg);
}
} //热门人才改变事件,如果是则改为否,否则改为是
public function hot_change(){
if(IS_AJAX){
$id = I('get.id');
$recommend=I('get.hot');
if ($recommend==0){
$data['hot']=1;
}else{
$data['hot']=0;
}
$res = $this->usersModel->where('id='.$id)->save($data);
if($res===false){
$msg['code'] = 0;
$msg['msg'] = '操作失败';
}else{
$msg['code'] = 1;
$msg['msg'] = '操作成功';
}
$this->ajaxReturn($msg);
} } //顶级人才改变事件,如果是则改为否,否则改为是
public function top_change(){ $id = I('get.id');
$top=I('get.top');
if ($top==0){
$data['top']=1;
}else{
$data['top']=0;
}
$res = $this->usersModel->where('id='.$id)->save($data);
if($res===false){
$msg['code'] = 0;
$msg['msg'] = '操作失败';
}else{
$msg['code'] = 1;
$msg['msg'] = '操作成功';
}
$this->ajaxReturn($msg);
} }
thinkphp 网址后台典型页面的更多相关文章
- thinkPHP中怎么访问域名直接跳到后台登录页面
问题: 我想只访问域名就跳到后台登录页面,怎么把地址栏里的路径隐藏掉 答案: 修改配置Common里的conf文件夹里,把默认模块改成“Admin”,默认控制器改成“login”系统默认的默认模块式h ...
- python:页面布局 后台管理页面之常用布局
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- HTML高级标签(2)————窗体分帧(2)————后台管理页面
使用frameset进行窗体分帧.构建简易的后台页面.这篇博客就作为一个简易后台管理页面的实战演练. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3px ...
- DEDE暴力破解后台登录页面
DEDE暴力破解后台登录页面 #!/usr/bin/env python '''/* * author = Mochazz * team = 红日安全团队 * env = pyton3 * */ '' ...
- 13.从url 输入网址到最终页面渲染完成
从url 输入网址到最终页面渲染完成,发生了什么? 1.DNS解析:将域名地址解析为IP地址 先读取: -浏览器DNS缓存 -系统DNS缓存 -路由器DNS缓存 -网络运营商DNS缓存 -递归搜索:b ...
- 8 功能6:后台管理页面,编辑文章,xss攻击
1.后台管理页面之文本编辑 # 后台管理url re_path(r'^cn_backend/$', views.cn_backend, name='cn_backend'), re_path(r'^c ...
- ASP.Net中后台控制页面提示信息的显示方式
ASP.Net中后台控制页面提示信息的显示方式 用于删除或修改成功后的显示:(背景No空白) ScriptManager.RegisterStartupScript(this, typeof(Pa ...
- 老男孩Day16作业:登录、注册、后台管理页面(动态)
一.作业需求: 1.后台管理主界面(左边菜单框.(全选.反选)框.返回顶部按钮) 2.老男孩登录.注册页面 二.博客地址:https://www.cnblogs.com/catepython/p/93 ...
- go语言实战教程之 后台管理页面统计功能开发(2)
上节内容介绍了后台管理页面统计功能开发(1),从功能介绍,到接口请求分析和归类,最后是代码设计.经过上节内容的介绍,已经将业务逻辑和开发逻辑解释清楚,本节内容侧重于编程代码实现具体的功能. 当日增长数 ...
随机推荐
- node.js fs,http
error: EventEmitter定义了一个特殊的时间error,它包含了‘错误’的语义,当error被发射时,EventEmitter规定如果没有 响应的监听器,Node.js会把它当做异常,退 ...
- WPF实战案例-打印
在前段时间做了一下打印,因为需要支持的格式比较多,所以wpf能打印的有限分享一下几种格式的打印(.xls .xlsx .doc .docx .png .jpg .bmp .pdf) 首先为了保证exc ...
- HttpWebRequest 跳转后(301,302)ResponseUri乱码问题
问题: 目标地址: http://www.baidu.com/baidu.php?url=a000000aa.7D_ifdr1XkSUzuBz3rd2ccvp2mFoJ3rOUsnx8OdxeOeOL ...
- 201621123018《Java程序设计》第7周学习报告
1. 本周学习总结 1.1 思维导图:Java图形界面总结 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 事件.事件源. 事件监听器.事件处理方法 1.2 任 ...
- IO、NIO、AIO
一. IO 传统的IO是同步阻塞模式,数据的读取与写入会阻塞在一个线程内等待其完成. 主要面向字节流编程.(流是单向的) 二. NIO NIO支持同步非阻塞模式,在进行IO调用后,然后去 轮询调用结果 ...
- vue教程3-03 vue组件,定义全局、局部组件,配合模板,动态组件
vue教程3-03 vue组件,定义全局.局部组件,配合模板,动态组件 一.定义一个组件 定义一个组件: 1. 全局组件 var Aaa=Vue.extend({ template:'<h3&g ...
- javascript数据结构与算法---检索算法(顺序查找、最大最小值、自组织查询)
javascript数据结构与算法---检索算法(顺序查找.最大最小值.自组织查询) 一.顺序查找法 /* * 顺序查找法 * * 顺序查找法只要从列表的第一个元素开始循环,然后逐个与要查找的数据进行 ...
- Python Web Server Gateway Interface -- WSGI
了解了HTTP协议和HTML文档,我们其实就明白了一个Web应用的本质就是: 浏览器发送一个HTTP请求: 服务器收到请求,生成一个HTML文档: 服务器把HTML文档作为HTTP响应的Body发送给 ...
- Java读取文件加锁代码Demo(利用Java的NIO)
本博文部分转载于:http://blog.csdn.net/wangbaochu/article/details/48546717 Java 提供了文件锁FileLock类,利用这个类可以控制不同程序 ...
- ES练习代码
package elasticsearch; import java.util.HashMap; import java.util.List; import java.util.Map; import ...