zoukankan      html  css  js  c++  java
  • 【php增删改查实例】第十一节

    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

  • 相关阅读:
    element-ui的气泡确认框
    ES6 检测数组中是否存在满足某些条件的元素实现方式
    P6788 「EZEC-3」四月樱花
    Codeforces Global Round 10(CF1392)
    Ynoi2019模拟赛
    谷粒学院项目分享(源码+资料+课件)全部齐全
    安装最新版NUXT
    LibreOJ #6284
    LibreOJ #6283
    LibreOJ #6282
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/9154251.html
Copyright © 2011-2022 走看看