流程控制,又是一个广泛应用于办公自动化等内部自定义流程及审核的功能。比如请假流程啊,申请办公用品经费,报销申请啊,等等,需要层层审批通过才能完成的(按规章办事,最好别越级,你说是吧)
不习惯一篇博客太长,看不过来,这篇我们先实现流程的新建
先看看效果图
1.有个下拉选择用户,可以依次添加到流程的节点位置,
2.下方显示流程的每个节点
3.填写流程名称,点击保存即可完成流程的新建
数据库中需要三张表,1.用户表2.流程表 3.流程节点表
选择用户和添加节点按钮
<div> 请选择用户: <select id="sel"> <?php session_start(); require "../DataBase.class.php"; $db=new DataBase(); $sql="select * from users"; $arr=$db->Query($sql); foreach($arr as $v) { echo "<option>{$v[2]}</option>"; } ?> </select> <input type="button" id="add" value="添加至流程节点"/> </div><br /> <div>
为按钮添加事件
1 $("#add").click(function (){ 2 var uid=$("#sel").val(); 3 $.ajax({ 4 url:"addjd.php", 5 data:{uid:uid}, 6 type:"POST", 7 dataType:"TEXT", 8 success: function(data){ 9 10 11 window.location.href="newbuild.php"; 12 } 13 14 15 16 }) 17 });
处理页面addjd.php
1 <?php 2 session_start(); 3 $uid=$_POST["uid"]; 4 if(empty($_SESSION["uid"])) 5 { 6 $arr=array($uid); 7 $_SESSION["uid"]=$arr; 8 } 9 else{ 10 11 $arr=$_SESSION["uid"]; 12 $arr[]=$uid; 13 $_SESSION["uid"]=$arr; 14 15 } 16 17 ?>
加载节点信息
<div> <?php if(empty($_SESSION["uid"])) { echo "你还没有添加任何节点"; } else { $arr2=$_SESSION["uid"]; foreach($arr2 as $k=>$v) { $sql2="select name from users where uid='{$v}'"; $name=$db->Query($sql2); echo "<div>{$k}----{$v}<input type='button' value='删除' sy='{$k}' class='yichu'/></div>"; } } ?> </div>
删除的触发事件
1 $(".yichu").click(function (){ 2 var sy=$(this).attr("sy"); 3 $.ajax({ 4 url:"removejd.php", 5 data:{sy:sy}, 6 type:"POST", 7 dataType:"TEXT", 8 success: function(data){ 9 window.location.href="newbuild.php"; 10 11 12 } 13 14 15 16 }) 17 18 19 20 21 });
移除的处理页面
<?php session_start(); $sy=$_POST["sy"]; $arr=$_SESSION["uid"]; unset($arr[$sy]); //移除数组元素 $arr=array_values($arr); //重建索引 $_SESSION["uid"]=$arr; ?>
保存的页面和点击事件
1 <div> 2 请输入新建流程的名称:<input type="text" id="shuru" /><br /> 3 4 <input type="button" value="保存" id="save" /> 5 6 </div> 7 <script> 8 $("#save").click(function (){ 9 var mingcheng=$("#shuru").val(); 10 $.ajax({ 11 url:"save.php", 12 data:{mingcheng:mingcheng}, 13 type:"POST", 14 dataType:"TEXT", 15 success: function(data) 16 { 17 alert("保存成功") 18 } 19 20 21 22 }) 23 24 25 26 27 28 }) 29 30 31 32 </script>
保存的处理页面
1 <?php 2 session_start(); 3 $name=$_POST["mingcheng"]; 4 $code=time(); 5 6 require "../DataBase.class.php"; 7 $db=new DataBase(); 8 $sql="insert into liucheng values('{$code}','{$name}')"; 9 $db->Query($sql,0); 10 11 12 $arr=$_SESSION["uid"]; 13 foreach($arr as $k=>$v) 14 { 15 $sql2="insert into flowpath values('','{$code}','{$v}','{$k}')"; 16 $db->Query($sql2,0); 17 } 18 19 ?>