【php增删改查实例】第十节 - 部门管理模块(新增功能)

正常情况下,在一个部门管理页面,不仅仅需要展示列表数据,还需要基本的增删改操作,所以,我们先把之前写好的新增功能集成进来。

在toolbar中,添加一个新增按钮。

<div id="toolbar" style="padding:10px 12px;">

    <a href="javascript:openDialog()" class="easyui-linkbutton" iconCls="icon-add" plain="true">新增部门</a>

    <br><br>

    请输入部门名称:<input type="text" name="deptname" id="deptname" />

    <button onclick="search();" id="submit" style="float:right;">查询</button>

</div>

然后,编写其点击事件:

function openDialog(){
    alert();
}

测试一下,在页面中点击这个新增按钮,能不能成功的alert,如果不能,那么就去仔细查看是不是哪里写错了,比如少了个括号什么的。

在body区域加上dialog的div标签块。

<div id="dialog0" class="easyui-dialog" style="width:500px;height:300px;padding:10px 20px;" closed="true"
           data-options="title:'部门新增'" buttons="#dialog0-buttons"> 
        <!-- 在对话框中画一个简单的表达组件 -->
        <form id="form0" method="post">
            <table cellspacing="5px;" cellpadding="0px">
              <tr>
                
                <td>部门编号:</td>
                <td><input type="text" id="deptid" name="deptid" class="easyui-validatebox" required="true"/></td>
              </tr>
              
              <tr>
                
                <td>部门名称:</td>
                <td><input type="text" id="deptname" name="deptname" class="easyui-validatebox" required="true"/></td>
              </tr>
              
            </table>

        </form>

      </div>

      <div id="dialog0-buttons">
        <a href="javascript:save();" class='easyui-linkbutton' iconCls="icon-ok">保存</a>
      </div>

别忘了修改openDialog方法的内容:

function openDialog(){
    $("#dialog0").dialog("open");
}

效果:

当我们点击保存按钮,回去调用一下save方法, 因为这个保存按钮:

<a href="javascript:save();" class='easyui-linkbutton' iconCls="icon-ok">保存</a>

它拥有一个save的点击事件。

Save函数:

function save(){



  $("#form0").form("submit",{

    //提交的目标服务器地址
    url : "saveDept.php" ,

    //验证表单内元素是否有效?
    onSubmit : function(){
        return $(this).form("validate");
    } ,

    //如果服务器成功返回数据,就会启动这个方法
    //参数data就是服务器返回的数据
    success : function(data){
        $.messager.alert("系统提醒","保存成功!");
        $("#dialog0").dialog("close");
    }

  });

}

表单提交的地址是saveDept.php.

<?php

    //建立MYSQL数据库连接
    $conn = mysql_connect("localhost","root","");
    //选择test数据库
    $db = mysql_select_db("test",$conn);
    //设置编码格式为UTF-8,以便支持中文
    mysql_query("set names utf8");


    $deptid = $_POST["deptid"];
    $deptname = $_POST["deptname"];


    //echo "部门编号:$deptid<br>";
    //echo "部门名称:$deptname";


    //编写sql语句

    $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());";

    //执行sql语句
    mysql_query($sql) or die(mysql_error());


    echo "success";


?>

如果你希望在新增成功后,默认刷新列表,就在回调函数中加一个search方法的调用即可:

后台错误返回

正常情况下,后台代码的运行不会一帆风顺,可能会发生一些错误,这个时候我们就需要告诉页面有没有错,发生了什么错。在企业里面,一般会设置一个错误对象,包含错误信息和错误码。 php:

在执行sql之前,定义一个通用的返回对象,包含错误码和错误信息

$resultData = array();
$resultData['errCode'] = 0; //默认错误码为0,表示没有错误
$resultData['errMsg'] = ""; //默认错误信息为空

然后,执行sql语句的时候,调用err函数:

//编写sql语句

    $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());";

    //执行sql语句
    mysql_query($sql) or die( err() );

    function err(){
        $resultData['errCode'] = -1; 
        $resultData['errMsg'] = mysql_error(); 
        echo json_encode($resultData);
    }

前台接收的方式:

$("#form0").form("submit",{

    //提交的目标服务器地址
    url : "saveDept.php" ,

    //验证表单内元素是否有效?
    onSubmit : function(){
        return $(this).form("validate");
    } ,

    //如果服务器成功返回数据,就会启动这个方法
    //参数data就是服务器返回的数据
    success : function(data){

        data = eval("("+data+")"); 

        if(data.errCode < 0){
            $.messager.alert("系统提醒","后台程序发生错误,原因是:<br><font style='color:red;'>"+data.errMsg+"</font>");
            return;
        }

        $.messager.alert("系统提醒","保存成功!");
        $("#dialog0").dialog("close");
        search();
    }

  });

}

PS:如果sql语句成功执行,就应该把resultData输出到页面。

//执行sql语句
    mysql_query($sql) or die( err() );


    echo json_encode($resultData);

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏有趣的Python

最新Django2.0.1在线教育零基础到上线教程(三)-3&4&5

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGe...

4075
来自专栏葡萄城控件技术团队

七天学会ASP.NET MVC(七)——创建单页应用

系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 ...

2926
来自专栏walterlv - 吕毅的博客

项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)

发布于 2018-05-10 13:49 更新于 2018-06...

301
来自专栏张善友的专栏

Enterprise Library 4 缓存快速入门

快速入门使用了一个顶层的处理程序来捕获任何场景中的任何异常。处理程序显示了一个带有异常信息的对话框。 快速入门在构建和运行应用程序之前不需要执行任何安装步骤。...

1989
来自专栏数据之美

线上服务 CPU 100%?一键定位 so easy!

背景 经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学...

3378
来自专栏coding

2018年python3与selenium教程第3节切换Frame延时等待

get()方法会在网页框架加载完成后结束执行,此时的网页源码可能并不完整,如有些是ajax获取的数据,需要延时等待才能获取到

932
来自专栏张善友的专栏

好用的WCF Visualizers

从 Visual Studio 2005 开始有个非常好用的功能, 就是在 debug 的时候,  可以用Visualizer 很方便的查看某些类型的参数, 比...

1849
来自专栏大内老A

Razor Engine,实现代码生成器的又一件利器

Razor Engine,之前仅仅是ASP.NET MVC的一种View引擎,目前已经完全成为一种可以独立使用的模版引擎,并且已经成为了CodePlex上一个开...

1739
来自专栏北京马哥教育

Hadoop与Spark常用配置参数总结

背景 MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序。本文梳理了最常用的一些MapReduce和...

2816
来自专栏后端技术探索

深入PHP内核(二)——SAPI探究

SAPI是Server Application Programming Interface(服务器应用编程接口)的缩写。PHP通过SAPI提供了一组接口,供应用...

752

扫码关注云+社区