php随笔5-thinkphp OA系统 人力资源管理
最近闲来无事,自己尝试通过thinkphp3.1.3框架开发一套自己的OA系统,目前已完成了人力资源管理部分的内容,遇到并解决了几个问题。
1.由于刚开始不太熟悉thinkphp的框架,花费了一些功夫去了解。重点阅读了开发手册:http://doc.thinkphp.cn/manual/preface.html
2.问题:HTML 布局 规划布局为 header(头部)+side(左侧导航)+content(内容)的布局。
学习点:div 布局
1)position:absolute :
2)top:30px;left:30px; :相对于整个页面距离顶部和左边的距离
3)height:150px;width:1900px;:div 的高度和宽度
#header{position:absolute;height:150px;width:1900px;color:#fff;background:#666;line-height:50px;z-index:;top:0px;left:0px}
#content{position:absolute;width:1895px;color:#fff;float:right;margin-left:-170px;margin-top:0px;z-index:;top:145px;left:175px}
#content_inner{position:absolute;width:1725px;height:665px;background:#333300;top:15px;left:170px}
#side{position:absolute;width:265px;height:760px;color:#fff;background:#FFFFFF;float:left;margin-top:0px;z-index:;;top:160px;left:0px}
#side_inner{position:absolute;width:;heigth:550px;top:0px}
#footer{position:absolute;height:50px;color:#fff;background:#666;margin-top:10px;z-index:}
thinkphp模板包含整合:<include file="./Tpl/Home/index/index_layout.html"/> 注:有使用分组Home,Admin
问题:模板包含导致读取的CSS,JS无效的问题:<script src="/app/public/js/jquery-1.11.2.min.js" type="text/javascript"></script> 使用这样的地址方式才有效
3.问题:模板读取信息ajax至指定控制器方法并返回json数据集,并对json数据集进行遍历输出。期间遇到编码的问题,显示中文为乱码,需要调整全部的编码方式为UTF-8,首先调整编辑器的编码方式,然后是thinkphp的编码方式,以及数据库的编码方式。
PersonnelmattersAction.class.php 的 handlename()
//getmember ajax name
public function handlename()
{
if( IS_POST )
{
$Data = M('Personnelmatters');
$cate = $_POST['name'];
//$cate = iconv("UTF-8","GB2312//TRANSLIT",$cate);
$field ="id,aid,department,station,entry_time,name,privatephone,companyphone,idnumber,education,maritalstatus,drivinglicense,email,job";
$result = $Data->field($field)->where(array('name'=> $cate))->select();
//$this->ajaxReturn($result,"OK",1);
echo json_encode($result,true);
}else
{
echo json_encode("",true);
}
}
PersonnelmattersModel.class.php
<?php class PersonnelmattersModel extends Model{
//指定数据库
protected $dbName = 'yloa'; //定义模型字段
protected $fields = array(
'id',
'aid',
'department',
'station',
'entry_time',
'name',
'privatephone',
'companyphone',
'idnumber',
'education',
'maritalstatus',
'drivinglicense',
'email',
'job',
'_pk' => 'id',
'_autoinc' => true
); // 定义自动验证
protected $_validate = array(
array('aid','require','工号必须'),
array('department','require','部门必须'),
array('station','require','岗位必须'),
array('entry_time','require','入职时间必须'),
array('name','require','工号必须'),
array('privatephone','require','个人电话必须'),
array('idnumber','require','身份证必须'),
array('education','require','学历必须'),
array('maritalstatus','require','婚否必须'),
array('drivinglicense','require','是否有驾照必须'),
array('email','require','邮箱必须'),
array('job','require','是否在职必须'),
); }
getmember.html
<select id="name" style="height:30px;width:75px">
<volist name="search" id="vo">
<option value="{$vo.name}">{$vo.name}</option>
</volist>
</select>
$(function(){
var ajaxUrl = "/app/index.php/Personnelmatters/handlename";
$("#name").change(function(){
var name = $("#name").val();
$.post(ajaxUrl,{"name":name},function(json){
printPersonnelmatters(json);
},'json');
});
})
//员工资料展示
function printPersonnelmatters(json)
{
if(json == null || json == undefined || json == '')
{
$("#result").html("返回值为空!");
}
else
{
var len = json.length;
var tableStr ="<table class='imagetable'>";
tableStr = tableStr + "<tr><th>序号</th><th>工号</th><th>部门</th><th>职务</th><th>入职时间</th><th>姓名</th><th>私人电话</th><th>公司电话</th><th>身份证</th><th>学历</th><th>婚否</th><th>是否有驾照</th><th>邮箱</th><th>是否在职</th><th>操作</th></tr>";
for(var i=0;i<len;i++)
{
tableStr = tableStr + "<tr><td id='myid'>"+ json[i].id +"</td>"
+"<td>"+ json[i].aid + "</td>"
+"<td>"+ json[i].department + "</td>"
+"<td>"+ json[i].station + "</td>"
+"<td>"+ json[i].entry_time + "</td>"
+"<td>"+ json[i].name + "</td>"
+"<td>"+ json[i].privatephone + "</td>"
+"<td>"+ json[i].companyphone + "</td>"
+"<td>"+ json[i].idnumber + "</td>"
+"<td>"+ json[i].education + "</td>"
+"<td>"+ json[i].maritalstatus + "</td>"
+"<td>"+ json[i].drivinglicense + "</td>"
+"<td>"+ json[i].email + "</td>"
+"<td>"+ json[i].job + "</td>"
+"<td>"+ "<nobr><input type='button' id='edit' value='编辑' onclick='javascript:edit_id("+json[i].id+");' /><input type='button' id='delete' value='删除' onclick='javascript:delete_id("+json[i].id+");' /></nobr>"+ "</td></tr>";
}
tableStr = tableStr + "</table>";
$("#result").html(tableStr);
}
}
问题:获取指定行id。直接在展示方法中传值
4.问题:thinkphp数据分页,thinkphp有自带的数据分页类。
PersonnelmattersAction.class.php 的 getmember()
//获取职员信息
public function getmember(){
$Data = M('Personnelmatters');
import('ORG.Util.Page');// 导入分页类
$count = $Data->count();// 查询满足要求的总记录数
$lastpage = floor(($count/10)+1);
$Page = new Page($count,10);// 实例化分页类 传入总记录数和每页显示的记录数
$show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $Data->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 赋值数据集
$this->assign('page',$show);// 赋值分页输出
$this->assign('lastpage',$lastpage);
//echo $Data->getLastSql();
$this->search = $Data ->select();
$this->display();
}
getmember.html
<div id="result">
<table class='imagetable'>
<tr>
<th>序号</th>
<th>工号</th>
<th>部门</th>
<th>职务</th>
<th>入职时间</th>
<th>姓名</th>
<th>私人电话</th>
<th>公司电话</th>
<th>身份证</th>
<th>学历</th>
<th>婚否</th>
<th>是否有驾照</th>
<th>邮箱</th>
<th>是否在职</th>
<th>操作</th>
</tr>
<volist name="list" id="vo" key="k">
<tr align="center">
<td>{$vo.id}</td>
<td>{$vo.aid}</td>
<td>{$vo.department}</td>
<td>{$vo.station}</td>
<td>{$vo.entry_time}</td>
<td>{$vo.name}</td>
<td>{$vo.privatephone}</td>
<td>{$vo.companyphone}</td>
<td>{$vo.idnumber}</td>
<td>{$vo.education}</td>
<td>{$vo.maritalstatus}</td>
<td>{$vo.drivinglicense}</td>
<td>{$vo.email}</td>
<td>{$vo.job}</td>
<td>
<nobr><input type="button" id="edit" value="编辑" onclick="javascript:edit_id({$vo.id});" /><input type="button" id="delete" value="删除" onclick="javascript:delete_id({$vo.id});" /></nobr>
</td>
</tr>
</volist>
</table>
<div style="position:absolute;width:1425px;heigth:30px;top:500px;" align="center">
<hr>{$page} <a href="/app/index.php/Personnelmatters/getmember/p/1">首页</a> <a href="/app/index.php/Personnelmatters/getmember/p/{$lastpage}">末页</a><hr>
</div>
php随笔5-thinkphp OA系统 人力资源管理的更多相关文章
- 浅谈OA系统与Portal门户的区别
随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...
- OA系统高性能解决方案(史上最全的通达OA系统优化方案)
序: 这是一篇针对通达OA系统的整体优化方案,文档将硬件.网络.linux操作系统.程序本身(包括web和数据库)以及现有业务有效结合在一起,进行了系统的整合优化.该方案应用于真实生产环境,部署完成后 ...
- Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感
Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感 序 言上篇:价值创造.评价与分配第一章 全力创造价值1.1 围绕价值创造展开人力资源管理1.1.1 什 ...
- 评点SAP HR功能及人力资源管理软件
评点SAP HR功能及人力资源管理软件 本文导航 第1页:my SAP 人力资源软件 第2页:my SAP HR协同功能 第3页:组织结构管理 第4页:mySAPTM HR的战略功能 第5页:集成 ...
- OA系统、ERP系统、CRM系统的区别和联系有哪些?企业该如何使用?
我们经常听到很多企业会花重金购买适合企业的ERP.OA和CRM系统,使得公司的管理运营更加高效有序,节省公司运营成本,带来更大的经济效益,但实际上很多人员都不太理解他们之间的区别和联系是什么,到底该如 ...
- 基于SSH框架的人力资源管理系统设计与实现
- - ->关注博主公众号[C you again],获取更多IT资源(IT技术文章,毕业设计.课程设计系统源码,经典游戏源码,HTML网页模板,PPT.简历模板,!!还可以投稿赚钱!!,点击查 ...
- 整合了一个功能强大完善的OA系统源码,php全开源 界面漂亮美观
整合了一个功能强大完善的OA系统源码,php全开源界面漂亮美观.需要的同学联系Q:930948049
- PMP 第九章 项目人力资源管理
1制定人力资源计划 2组建项目团队 3建设项目团队 4管理项目团队 1.规划人力资源管理的作用是什么?组织图和职位描述的表现形式有哪些?RAM和RACI的关系是什么?人力资源管理计划的内容有哪些? 人 ...
- Atitit.人力资源管理原理与概论
Atitit.人力资源管理原理与概论 1. 人力资源管理 第一章 人力资源管理概述 第二章 人力资源理论基础与发展演变 第三章 人力资源规划 第四章工作分析与工作设计 第五章 员工招聘与录用 第六章 ...
随机推荐
- jasmine note
jasmine 简介 jasmine 是一个测试驱动开发(TDD)测试框架, 一个js测试框架,它不依赖于浏览器.dom或其他js框架 jasmine有十分简洁的语法 使用 从 这里 下载 stant ...
- Http record java
http://httpunit.sourceforge.net/doc/servletunit-intro.html https://code.google.com/p/http-impersonat ...
- HDU 4436 str2int(后缀自动机)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4436 [题目大意] 给出一些字符串,由0~9组成,求出所有不同子串的和. [题解] 将所有字符串添 ...
- Introduction to Probability (5) Continus random variable
CONTINUOUS RANDOM VARIABLES AND PDFS 连续的随机变量,顾名思义.就是随机变量的取值范围是连续的值,比如汽车的速度.气温.假设我们要利用这些參数来建模.那么就须要引 ...
- 简单的web三层架构系统【第三版】
今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方 ...
- 解决 Tomcat reload WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but fail
转自:http://www.cnblogs.com/interdrp/p/5632529.html 我的错误如下: 06-Sep-2016 18:57:10.595 WARNING [localhos ...
- Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/04/2379628.html 一.概述 关于Socket编程的基本方法在基础篇里已经讲过,今天把 ...
- Lucence.Net+添加关键词+分页+排序
1.使用queryparser完成解析搜索请求 2.基本格式如: QueryParser parser=new QueryParser("字段名称","分析器实例&quo ...
- HDU2005-第几天
描述: 给定一个日期,输出这个日期是该年的第几天. 代码: #include<stdio.h> #include<string.h> #include<iostream& ...
- 创建txt格式文本日志
公共方法(可以将其放到类库里边): #region 记录日志 #region 写日志 /// <summary> /// 写日志 /// </summary> /// < ...