知识点:

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 网址后台典型页面的更多相关文章

  1. thinkPHP中怎么访问域名直接跳到后台登录页面

    问题: 我想只访问域名就跳到后台登录页面,怎么把地址栏里的路径隐藏掉 答案: 修改配置Common里的conf文件夹里,把默认模块改成“Admin”,默认控制器改成“login”系统默认的默认模块式h ...

  2. python:页面布局 后台管理页面之常用布局

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  3. HTML高级标签(2)————窗体分帧(2)————后台管理页面

    使用frameset进行窗体分帧.构建简易的后台页面.这篇博客就作为一个简易后台管理页面的实战演练. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3px ...

  4. DEDE暴力破解后台登录页面

    DEDE暴力破解后台登录页面 #!/usr/bin/env python '''/* * author = Mochazz * team = 红日安全团队 * env = pyton3 * */ '' ...

  5. 13.从url 输入网址到最终页面渲染完成

    从url 输入网址到最终页面渲染完成,发生了什么? 1.DNS解析:将域名地址解析为IP地址 先读取: -浏览器DNS缓存 -系统DNS缓存 -路由器DNS缓存 -网络运营商DNS缓存 -递归搜索:b ...

  6. 8 功能6:后台管理页面,编辑文章,xss攻击

    1.后台管理页面之文本编辑 # 后台管理url re_path(r'^cn_backend/$', views.cn_backend, name='cn_backend'), re_path(r'^c ...

  7. ASP.Net中后台控制页面提示信息的显示方式

    ASP.Net中后台控制页面提示信息的显示方式   用于删除或修改成功后的显示:(背景No空白) ScriptManager.RegisterStartupScript(this, typeof(Pa ...

  8. 老男孩Day16作业:登录、注册、后台管理页面(动态)

    一.作业需求: 1.后台管理主界面(左边菜单框.(全选.反选)框.返回顶部按钮) 2.老男孩登录.注册页面 二.博客地址:https://www.cnblogs.com/catepython/p/93 ...

  9. go语言实战教程之 后台管理页面统计功能开发(2)

    上节内容介绍了后台管理页面统计功能开发(1),从功能介绍,到接口请求分析和归类,最后是代码设计.经过上节内容的介绍,已经将业务逻辑和开发逻辑解释清楚,本节内容侧重于编程代码实现具体的功能. 当日增长数 ...

随机推荐

  1. MVC 5使用ViewBag(对象)显示数据

    前面Insus.NET有演示使用ViewData来实现控制器与视图的通讯.如果想了解的话,可以从下面两个链接可以查看:<MVC 5使用ViewData(对象)显示数据>http://www ...

  2. PowerDesigner执行脚本 name/comment/stereotype互转

    执行方法:工具栏->Tools -> Execute Commands -> Edit/Run Script (Ctrl+Shift+X) 如下图所示: 1.Name转到Commen ...

  3. jQuery ajax 302跨域

    一.ajax 302 ajax用于异步获取服务器数据,但是某天有这么一个使用场景: > 基于安全考虑,登录的用户的信息失效时,系统的所有ajax接口都由服务器直接重定向到系统的登录页面,此时登录 ...

  4. 预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif

    预处理命令 在接触#if.#undef这类预处理指令前,大部分都都接触过#define.#include等预处理命令,通俗来讲预处理命令的作用就是在编译和链接之前,对源文件进行一些文本方面的操作,比如 ...

  5. 教你通过Node.js漏洞完成渗透测试

    本篇文章较为详细的讲述了通过node.js的已知漏洞来完成渗透测试的过程,介绍了node.js存在的漏洞可以在多种工具下的不同利用方式.因为我认为会对论坛部分web安全新手有所帮助,所以整理到论坛中. ...

  6. (干货) Android实现ImageVIew多点触控及双击缩放

    支持多点触控,放大自由移动,双击可以放大缩小.直接上代码: package com.cbt.view; import android.content.Context; import android.g ...

  7. 利用koa打造restful API

    概述 最近学习利用koa搭建API接口,小有所得,现在记录下来,供以后开发时参考,相信对其他人也有用. 就目前我所知道的而言,API有2种,一种是jsonp这种API,前端通过ajax来进行跨域请求获 ...

  8. D01-R语言基础学习

    R语言基础学习——D01 20190410内容纲要: 1.R的下载与安装 2.R包的安装与使用方法 (1)查看已安装的包 (2)查看是否安装过包 (3)安装包 (4)更新包 3.结果的重用 4.R处理 ...

  9. TakePhoto实现拍照得到图片和从相册得到图片

    在学郭霖大神的第一行代码的时候,学到利用相机拍照和从本地相册取照片的那一小节的时候,代码写出来但是出了很多问题,APP老是崩溃,一番百度最终还是没有找到解决办法 无奈只能用别人现成的轮子了,然后就发现 ...

  10. nodejs结合apiblue实现MockServer

    apiblue功能很强大,里面支持很多插件,这些插件能够为restfulAPI提供接口文档自动生成,甚至Mockserver的功能,当然,好多插件还是有很多坑的.下面用apiblue实现下面的业务需求 ...