php-流程管理(新建流程)(php+Ajax)
php+AJAX新建流程
1:需要明确需要操作哪些流程?
2:每一个流程需要那些人员来执行?
3:执行该流程人员的顺序是什么?
一. 数据库建需要用到的三张表,分别是:users表;liucheng表;flowpath表(表中已显示所做的数据)
二. 新建流程的页面
(1)用下拉列表显示人员的名单并且加一个添加按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <h1>新建流程</h1> <div> 请选择节点人员: <select id= "user" > <?php session_start(); require "../DBDA.class.php" ; $db = new DBDA(); $sql = "select * from users" ; $arr = $db ->query( $sql ,1); foreach ( $arr as $v ) { echo "<option value='{$v[0]}'>{$v[2]}</option>" ; //输出单选按钮,数组中的索引2,也就是用户名,但是它的值是代号 } ?> </select> <input type= "button" value= "添加节点" id= "addjd" /> </div> <br /> |
(2)对添加节点按钮添加点击事件
1 2 3 4 5 6 7 8 9 10 11 12 | $( "#addjd" ).click( function (){ var uid = $( "#user" ).val(); $.ajax({ url: "add.php" , data:{uid:uid}, type: "POST" , dataType: "TEXT" , success: function (data){ window.location.href= "xinjian.php" ; //执行处理页面成功后会刷新页面 } }) }) |
(3)添加节点的处理页面 add.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php session_start(); $uid = $_POST [ "uid" ]; //接收传过来的值 if ( empty ( $_SESSION [ "jiedian" ])) { $arr = array ( $uid );<code class = "php plain" ></code><code class = "php comments" > //定义一个数组放用户</code> $_SESSION [ "jiedian" ] = $arr ; <code class = "php comments" > //将第一个用户放入数组中</code> } else { $arr = $_SESSION [ "jiedian" ];<code class = "php comments" > //数组中有值</code> $arr [] = $uid ; <code class = "php plain" ></code><code class = "php comments" > //放入数组中值</code> $_SESSION [ "jiedian" ] = $arr ; <code class = "php comments" > //将值再交给session</code> } |
(4)在新建流程页面中显示添加的节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <div> <?php if ( empty ( $_SESSION [ "jiedian" ])) { echo "还未添加节点人员!" ; } else { $arr = $_SESSION [ "jiedian" ]; foreach ( $arr as $k => $v ) { $sql = "select name from users where uid='{$v}'" ; $name = $db ->strquery( $sql ); echo "<div>{$k}--{$name}--<input type='button' value='移除' class='yichu' sy='{$k}'/></div>" ; } } ?> </div> <br /> |
完成到这一步以后,效果如下:
(5)给移除按钮添加单击事件
1 2 3 4 5 6 7 8 9 10 11 12 | $( ".yichu" ).click( function (){ var sy = $(this).attr( "sy" ); <code class = "php comments" > //点击这个按钮,选中这个的索引号</code> $.ajax({ url: "yichu.php" , data:{sy:sy}, type: "POST" , dataType: "TEXT" , success: function (data){ window.location.href= "xinjian.php" ;<code class = "php comments" > //执行处理页面成功后会刷新页面</code> } }); }) |
(6)移除处理页面 yichu.php
1 2 3 4 5 6 7 8 9 | <?php session_start(); $sy = $_POST [ "sy" ]; <code class = "php comments" > //接收穿过来的索引号</code> $arr = $_SESSION [ "jiedian" ];<code class = "php plain" ></code><code class = "php comments" > //节点的数组</code> unset( $arr [ $sy ]); <code class = "php plain" ></code><code class = "php comments" > //删除数据</code> $arr = array_values ( $arr );<code class = "php plain" ></code><code class = "php comments" > //重新索引</code> $_SESSION [ "jiedian" ] = $arr ; |
(7)节点的问题解决以后,那么就是流程的名称了,写名称的文本框:重要的就是对此流程的保存,那么就要有保存按钮
1 2 3 4 5 | <div> 请输入流程名称:<input type= "text" id= "mingcheng" /> </div> <br /> <input type= "button" value= "保存" id= "baocun" /> |
(8)给保存按钮的添加单击事件
1 2 3 4 5 6 7 8 9 10 11 12 | $( "#baocun" ).click( function (){ var name = $( "#mingcheng" ).val(); $.ajax({ url: "baocun.php" , data:{name:name}, type: "POST" , dataType: "TEXT" , success: function (data){ alert( "保存成功!" ); } }); }) |
(9)最后是保存流程的处理页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php session_start(); require "../DBDA.class.php" ; $db = new DBDA(); $name = $_POST [ "name" ]; $code = time(); $sql = "insert into liucheng values('{$code}','{$name}')" ; $db ->query( $sql ); $arr = $_SESSION [ "jiedian" ]; foreach ( $arr as $k => $v ) { $sql = "insert into flowpath values('','{$code}','{$v}',{$k})" ; //注意建表的类型,这里的orders项用的是int型,所以{$k}不用加'',而且建表主键要勾选自增长 $db ->query( $sql ); } |
当然内容也相应的保存在了数据库中,效果见最上面的数据表
下面代码用来copy用:
1.xinjian.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="../jquery-3.2.0.min.js"></script> </head> <body> <h1>新建流程</h1> <div> 请选择节点人员: <select id="user"> <?php session_start(); require"../DBDA.class.php"; $db = new DBDA(); $sql = "select * from users"; $arr = $db->query($sql,1); foreach($arr as $v) { echo"<option value='{$v[0]}'>{$v[2]}</option>"; } ?> </select> <input type="button" value="添加节点" id="addjd" /> </div> <br /> <div> <?php if(empty($_SESSION["jiedian"])) { echo"还未添加节点人员!"; } else { $arr = $_SESSION["jiedian"]; foreach($arr as $k=>$v) { $sql ="select name from users where uid='{$v}'"; $name =$db->strquery($sql); echo"<div>{$k}--{$name}--<input type='button' value='移除' class='yichu' sy='{$k}'/></div>"; } } ?> </div> <br /> <div> 请输入流程名称:<input type="text" id="mingcheng" /> </div> <br /> <input type="button" value="保存" id="baocun" /> </body> <script type="text/javascript"> $("#addjd").click(function(){ var uid = $("#user").val(); $.ajax({ url:"add.php", data:{uid:uid}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="xinjian.php"; } }) }) $(".yichu").click(function(){ var sy = $(this).attr("sy"); $.ajax({ url:"yichu.php", data:{sy:sy}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="xinjian.php"; } }); }) $("#baocun").click(function(){ var name = $("#mingcheng").val(); $.ajax({ url:"baocun.php", data:{name:name}, type:"POST", dataType:"TEXT", success: function(data){ alert("保存成功!"); } }); }) </script> </html>
2.add.php
<?php session_start(); $uid = $_POST["uid"]; if(empty($_SESSION["jiedian"])) { $arr = array($uid); $_SESSION["jiedian"] = $arr; } else { $arr = $_SESSION["jiedian"]; $arr[] = $uid; $_SESSION["jiedian"] = $arr; }
3.yichu.php
<?php session_start(); $sy =$_POST["sy"]; $arr = $_SESSION["jiedian"]; unset($arr[$sy]); $arr = array_values($arr); $_SESSION["jiedian"] = $arr;
4.baocun.php
<?php session_start(); require "../DBDA.class.php"; $db = new DBDA(); $name = $_POST["name"]; $code = time(); $sql ="insert into liucheng values('{$code}','{$name}')"; $db->query($sql); $arr = $_SESSION["jiedian"]; foreach($arr as $k=>$v) { $sql ="insert into flowpath values('','{$code}','{$v}',{$k})"; $db->query($sql); }
1 | //输出单选按钮,数组中的索引2,也就是用户名,但是它的值是代号 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步