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),从功能介绍,到接口请求分析和归类,最后是代码设计.经过上节内容的介绍,已经将业务逻辑和开发逻辑解释清楚,本节内容侧重于编程代码实现具体的功能. 当日增长数 ...
随机推荐
- SQL SERVER锁(LOCK)知识及锁应用
提示:这里所摘抄的关于锁的知识有的是不同sql server版本的,对应于特定版本时会有问题. 一 关于锁的基础知识 (一). 为什么要引入锁 当多个用户同时对数据库的并发操作时会带来以下数据不一致的 ...
- ASP.NET Core CMS管理后台
ASP.NET Core+LayUI+MySql CMS管理后台,主要功能包括 登录.修改密码,账号管理,菜单管理,角色权限管理等 由于工作之外,抽时间写的,用于学习交流,请慎重用于生产环境 项目概要 ...
- 关于SpringBoot开发微信模板推送
在这里演示一下微信的模板消息推送: 这里使用微信测试号 来演示: 先看下效果吧: 1.首先需要申请一个 微信测试号 https://mp.weixin.qq.com/wiki?t=resourc ...
- 全世界最顶级黑客同时沸腾在DEF CON 25,是怎样一种体验?
2017,我在这里!圆你黑客梦!! 被称为黑客“世界杯”与“奥斯卡”的美国黑帽技术大会Black Hat和世界黑客大会DEF CON 是众多黑客心中最神圣的梦! 有位小表弟告诉我说:Black ...
- ThinkCMF后台验证码不显示,无法登陆怎么办?
ThinkCMF5在本地部署之后,过一段时间可能会莫名其妙的出现后台验证码不显示的问题,不明就里.着急登陆后台的话,可以先禁用后台验证码,方法如下: 打开文件:/app/admin/controlle ...
- 【5】JMicro微服务-熔断降级
如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. 使用服务熔断降级特性,必须先启动Pubsub服务,服务监听服务,熔断器服务3个服务 先启动Pubsub及服务监听两 ...
- python使用(四)
1.file_os_option.py2.file_option.py3.configfile_option.py4.logger_option.py 1.file_os_option.py # co ...
- (转载)es进行聚合操作时提示Fielddata is disabled on text fields by default
原文地址:http://blog.csdn.net/u011403655/article/details/71107415 根据es官网的文档执行 GET /megacorp/employee/_se ...
- Java抽象类应用—模板方法模式
模板方法模式(Templete method) 定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中,模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 例: ...
- 解决Silverlight F5刷新问题
最近在做一个SL的项目,做完后,遇到一个F5刷新的问题,本人也是第一次接触接触SL项目,记得再ASP.NET浏览器的缓存会自动保存最后一次的浏览记录的. 所以就在网上到处找资料,可惜运气不好,都没找到 ...