9. 编辑部门功能的实现

思路:只允许用户勾选一条数据,点击编辑按钮,会跳出一个和新增数据类似的对话框。然后,用户可以修改部门名称和部门编码。点击保存按钮,提示修改成功。

9.1 前台代码编写

<a href="javascript:openModifyDialog()" class="easyui-linkbutton" iconCls="icon-edit" plain="true">编辑部门</a>





现在点击编辑部门按钮是没有用的,因为openModifyDialog方法还未编写,所以,当务之急就去script标签块中添加这个方法。

function openModifyDialog(){

	//1. 获取用户选中的所有行
var rows = $("#grid0").datagrid("getSelections"); if(rows.length != 1){ $.messager.alert("系统提醒","请勾选一条数据!");
return;
} //2. 打开一个编辑窗口,把勾选的信息填充进去
$("#dialog0").dialog("open");
$("#dialog0").dialog("setTitle","部门修改"); $("#form0").form("load",rows[0]); }

因为修改数据的时候,还需要传给后台一个ID,所以这个ID我们设置为一个隐藏的input框:



为了保证先打开修改窗口后,再打开新增窗口,ID残留的问题,我们需要在打开新增页面的时候,就去把ID清空掉。

function openDialog(){
$("#dialog0").dialog("open"); //如果有ID,就清除
$("#id").val(""); }

9.2 后台代码编写

10. 新增部门的时候,不允许部门编号重复

思路:deptid 传到后台的时候,先判断这个deptid在数据库中是否存在?如果存在,就提示“该部门编号重复!” 前台页面。如果不重复,继续之前的保存逻辑。

判断是否重复的方法:

SELECT count(1) as total from tm_dept

where deptid = 'BM_001'

首先,在saveDept.php文件中,把ResultData对象的定义放到最上面:

然后,在新增的逻辑中,添加如下代码,完成部门编号的非重复检测。

11. 修改部门的时候,不允许部门编号重复

这里会出现一种比较麻烦的情况。

部门编号是不允许重复的,如果我现在修改一个部门信息:

假如部门编号不改,我就把科技部改成科技2部。就会遇到一个问题。

1.如果后台进行部门编号的非重复检测,那么BM_001的确在数据库中是存在的,就是这条未修改前的数据。因此,无法进行保存。

2.如果后台不进行部门编号的非重复检测,那么,如果有人把BM_001改成其他已经存在的部门编号,比如BM_002,那么,数据库就会存在两条相同的数据了。

代码:

//根据ID是否传过来判断是新增还是修改?
if(isset($_POST['id']) && $_POST['id'] != null){
$id = $_POST['id']; //先要判断本次修改的部门编号是否和修改前一致? $rs = mysql_query("SELECT deptid from tm_dept where id = $id"); while($row = mysql_fetch_array($rs)){ if($row["deptid"] == $deptid){
$sql = "update tm_dept set deptname = '$deptname' , deptid = '$deptid' where id = $id";
}else{
//判断部门编号deptid是否重复?
$rs = mysql_query("SELECT count(1) as total from tm_dept where deptid = '$deptid'"); while($row = mysql_fetch_array($rs)){
if($row["total"] > 0){
$resultData['errCode'] = -2;
$resultData['errMsg'] = "部门编号".$deptid."重复,能不能换一个啊?";
echo json_encode($resultData);
return;
}
}
} } }else{ //判断部门编号deptid是否重复?
$rs = mysql_query("SELECT count(1) as total from tm_dept where deptid = '$deptid'"); while($row = mysql_fetch_array($rs)){
if($row["total"] > 0){
$resultData['errCode'] = -2;
$resultData['errMsg'] = "部门编号".$deptid."重复,能不能换一个啊?";
echo json_encode($resultData);
return;
}
} $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());"; }
  1. 编辑部门功能的实现

    思路:只允许用户勾选一条数据,点击编辑按钮,会跳出一个和新增数据类似的对话框。然后,用户可以修改部门名称和部门编码。点击保存按钮,提示修改成功。

9.1 前台代码编写

<a href="javascript:openModifyDialog()" class="easyui-linkbutton" iconCls="icon-edit" plain="true">编辑部门</a>





现在点击编辑部门按钮是没有用的,因为openModifyDialog方法还未编写,所以,当务之急就去script标签块中添加这个方法。

function openModifyDialog(){

	//1. 获取用户选中的所有行
var rows = $("#grid0").datagrid("getSelections"); if(rows.length != 1){ $.messager.alert("系统提醒","请勾选一条数据!");
return;
} //2. 打开一个编辑窗口,把勾选的信息填充进去
$("#dialog0").dialog("open");
$("#dialog0").dialog("setTitle","部门修改"); $("#form0").form("load",rows[0]); }

因为修改数据的时候,还需要传给后台一个ID,所以这个ID我们设置为一个隐藏的input框:



为了保证先打开修改窗口后,再打开新增窗口,ID残留的问题,我们需要在打开新增页面的时候,就去把ID清空掉。

function openDialog(){
$("#dialog0").dialog("open"); //如果有ID,就清除
$("#id").val(""); }

9.2 后台代码编写

10. 新增部门的时候,不允许部门编号重复

思路:deptid 传到后台的时候,先判断这个deptid在数据库中是否存在?如果存在,就提示“该部门编号重复!” 前台页面。如果不重复,继续之前的保存逻辑。

判断是否重复的方法:

SELECT count(1) as total from tm_dept

where deptid = 'BM_001'

首先,在saveDept.php文件中,把ResultData对象的定义放到最上面:

然后,在新增的逻辑中,添加如下代码,完成部门编号的非重复检测。

11. 修改部门的时候,不允许部门编号重复

这里会出现一种比较麻烦的情况。

部门编号是不允许重复的,如果我现在修改一个部门信息:

假如部门编号不改,我就把科技部改成科技2部。就会遇到一个问题。

1.如果后台进行部门编号的非重复检测,那么BM_001的确在数据库中是存在的,就是这条未修改前的数据。因此,无法进行保存。

2.如果后台不进行部门编号的非重复检测,那么,如果有人把BM_001改成其他已经存在的部门编号,比如BM_002,那么,数据库就会存在两条相同的数据了。

代码:

//根据ID是否传过来判断是新增还是修改?
if(isset($_POST['id']) && $_POST['id'] != null){
$id = $_POST['id']; //先要判断本次修改的部门编号是否和修改前一致? $rs = mysql_query("SELECT deptid from tm_dept where id = $id"); while($row = mysql_fetch_array($rs)){ if($row["deptid"] == $deptid){
$sql = "update tm_dept set deptname = '$deptname' , deptid = '$deptid' where id = $id";
}else{
//判断部门编号deptid是否重复?
$rs = mysql_query("SELECT count(1) as total from tm_dept where deptid = '$deptid'"); while($row = mysql_fetch_array($rs)){
if($row["total"] > 0){
$resultData['errCode'] = -2;
$resultData['errMsg'] = "部门编号".$deptid."重复,能不能换一个啊?";
echo json_encode($resultData);
return;
}
}
} } }else{ //判断部门编号deptid是否重复?
$rs = mysql_query("SELECT count(1) as total from tm_dept where deptid = '$deptid'"); while($row = mysql_fetch_array($rs)){
if($row["total"] > 0){
$resultData['errCode'] = -2;
$resultData['errMsg'] = "部门编号".$deptid."重复,能不能换一个啊?";
echo json_encode($resultData);
return;
}
} $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());"; }

下载地址:https://pan.baidu.com/s/1OXvqQwAmz7usgD4KqiUXLw

【php增删改查实例】第十一节 - 部门管理模块(编辑功能)的更多相关文章

  1. 【php增删改查实例】第九节 - 部门管理模块(模糊查询)

    给datagrid添加一个工具栏. 效果: 模糊查询部门名称. 接下来,在工具栏区域画一个input框: <div id="toolbar" style="padd ...

  2. 【php增删改查实例】第八节 - 部门管理模块(编写PHP程序)

    首先,在同级目录新建一个query.php文件: 接着,去刷新页面,打开F12,NetWork,看看当前的请求能不能走到对应的php文件? 这就说明datagrid确实能够访问到query.php 只 ...

  3. 【php增删改查实例】 第二节 - MYSQL环境配置

    安装好xampp后,会自带一个mysql,也就是说,正常情况下,你直接这样: 就可以启动mysql了. 如果你了,下面的步骤就别看了哈. if( 启动成功 ){ return; } 如果你的电脑上已经 ...

  4. 【php增删改查实例】第一节 - PHP开发环境配置

    最近需要使用PHP,于是把平时的积累整理一下,就有了这个教程. 首先是环境配置: 1.操作系统:windos7 2.后台:PHP 3.前台:Html + js + css 4.数据库:MYSQL 5. ...

  5. python链接oracle数据库以及数据库的增删改查实例

    初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...

  6. java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

    1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  7. yii2.0增删改查实例讲解

    yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...

  8. SpringBoot JPA实现增删改查、分页、排序、事务操作等功能

    今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and ...

  9. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具

    本节介绍如何自己DIY一个数据库管理工具,可以在页面输入sql 进行简单的增删改查操作. 首先,找到xampp的安装目录,打开htdocs: 新建一个php文件,名称为 mysqladmin.php ...

随机推荐

  1. 【Java入门提高篇】Day22 Java容器类详解(五)HashMap源码分析(上)

    准备了很长时间,终于理清了思路,鼓起勇气,开始介绍本篇的主角——HashMap.说实话,这家伙能说的内容太多了,要是像前面ArrayList那样翻译一下源码,稍微说说重点,肯定会让很多人摸不着头脑,不 ...

  2. 手把手教你撸一个简易的 webpack

    背景 随着前端复杂度的不断提升,诞生出很多打包工具,比如最先的grunt,gulp.到后来的webpack和Parcel.但是目前很多脚手架工具,比如vue-cli已经帮我们集成了一些构建工具的使用. ...

  3. python网络编程:socketserver的基本使用

    本文内容: socketserver的介绍 socketserver的使用 socketserver的异步服务端 首发时间:2018-03-21 也可以使用socketserver来创建socket ...

  4. Python:GUI之tkinter学习笔记2界面布局显示

    相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place 介绍 常用参数 使用情况 常用函数 首发时间:2018-03-04 14:20 pa ...

  5. flask day01

    目标:搭建好一个flask架构,并且可以运行起来,能够访问 ## 一丶配置环境 比较简单,只需要配一个flask pip3 install flask #也可以使用pip install flask ...

  6. [20170914]tnsnames.ora的管理.txt

    [20170914]tnsnames.ora的管理.txt --//昨天朋友讲tnsnams.ora的内容太长了,而且许多不需要的.管理不方便.我记得以前写[20150409]tnsnames.ora ...

  7. python第三十五天-----作业完成--学校选课系统

    选课系统:角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 课程包含, ...

  8. Linux文件和目录的粘滞位(sticky bit)

    今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录 ...

  9. MySQL之慢查询日志分析

    在MySQL命令行中查看慢查询日志是否打开了: mysql> show variables like '%slow_query%'; +---------------------------+- ...

  10. cmd 命令

    cmd 在桌面或任意磁盘新建一个TXT--输入CMD并保存--修改扩展名为.BAT md 文件夹名 新建文件夹cd 文件夹名 进入到该目录cd.. 返回上一层目录cd\ 返回根目录cd.>文件名 ...