Home > Article > Backend Development > How to implement process management in php?
php method to implement process management: first create a new process page and build a node; then click to select node personnel to adjust the list of all personnel from the database; finally, be a logged-in user and submit all steps of the leave process. .
php method to implement process management:
We first create a new process page and complete the nodes first
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="../dist/js/jquery-1.11.2.min.js"></script> </head> <body> <h1>新建流程</h1> <div> 请选择节点人员: <select id="user"> <?php session_start(); include("../fengzhuang/DBDA.class.php"); $db = new DBDA(); $sql = "select * from lc_users"; $arr = $db->Query($sql); foreach($arr as $v) { echo "<option value='{$v[0]}'>{$v[2]}</option>"; } ?> </select> <input type="button" value="添加节点" id="add" /> </div> <br /> <div> <?php if(!empty($_SESSION["user"])) { $attr = $_SESSION["user"]; foreach($attr as $k=>$v) { $sname = "select name from lc_users where uid='{$v}'"; $name = $db->StrQuery($sname); echo "<div>{$k}--{$name}--<input type='button' value='删除' key='{$k}' class='del' /></div>"; } } ?> </div> <br /> <div>请输入流程名称:<input type="text" id="name" /></div> <br /> <input type="button" value="保存" id="btn" /> </body> <script type="text/javascript"> //添加节点按钮加点击 $("#add").click(function(){ var uid = $("#user").val(); $.ajax({ url:"chuli.php", data:{uid:uid,type:0}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="xinjian.php"; } }); }) //给删除按钮加点击 $(".del").click(function(){ var key = $(this).attr("key"); $.ajax({ url:"chuli.php", data:{key:key,type:1}, type:"POST", dataType:"TEXT", success:function(data){ window.location.href="xinjian.php"; } }); }) //给保存按钮加点击 $("#btn").click(function(){ var name = $("#name").val(); $.ajax({ url:"chuli.php", data:{name:name,type:2}, type:"POST", dataType:"TEXT", success:function(data){ alert("保存成功!"); } }); }) </script> </html>
chuli.php
<?php session_start(); include("../fengzhuang/DBDA.class.php"); $db = new DBDA(); $type = $_POST["type"]; switch($type) { case 0: $uid = $_POST["uid"]; if(empty($_SESSION["user"])) { $arr = array($uid); $_SESSION["user"] = $arr; } else { $arr = $_SESSION["user"]; array_push($arr,$uid); $_SESSION["user"] = $arr; } break; case 1: $key = $_POST["key"]; $arr = $_SESSION["user"]; unset($arr[$key]); //删除 $arr = array_values($arr); //重新索引 $_SESSION["user"] = $arr; break; case 2: $name = $_POST["name"]; $code = time(); //添加流程 $sql = "insert into lc_liucheng values('{$code}','{$name}')"; $db->Query($sql,0); //添加流程节点 $arr = $_SESSION["user"]; foreach($arr as $k=>$v) { $sql = "insert into lc_flowpath values('','{$code}','{$v}','{$k}')"; $db->Query($sql,0); } break; case 3: //用户发起流程 $code = $_POST["code"]; $nr = $_POST["content"]; $uid = $_SESSION["uid"]; $time = date("Y-m-d H:i:s"); $sql = "insert into lc_userflow values('','{$code}','{$uid}','{$nr}',0,'{$time}',0)"; $db->Query($sql,0); break; }
The completed effect is as shown in the picture:
Click to select node personnel to call the list of all personnel from the database. Now put Li Si, Ma Qi and Zhang San into the process and make a leave request process:
Click save and save to the database:
Note: Code must use varchar , time cannot be used because the timestamp is used above
Now we are making a login user and submitting all steps of the leave process:
weilogin.php A fake account
<!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> </head> <body> <?php session_start(); $_SESSION["uid"] = "zhangsan"; ?> </body> </html>
faqi.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><br /> <script src="../dist/js/jquery-1.11.2.min.js"></script> </head> <body> <h1>发起流程</h1> <div> 请选择发起的流程: <select id="liucheng"> <?php session_start(); include("../fengzhuang/DBDA.class.php"); $db = new DBDA(); $sql = "select * from lc_liucheng"; $arr = $db->Query($sql); foreach($arr as $v) { echo "<option value='{$v[0]}'>{$v[1]}</option>"; } ?> </select> </div> <br /> <div> 请输入内容: <textarea id="nr"></textarea> </div> <br /> <input type="button" value="发起" id="btn" /> </body> <script type="text/javascript"> $("#btn").click(function(){ var code = $("#liucheng").val(); var content = $("#nr").val(); $.ajax({ url:"chuli.php", data:{code:code,content:content,type:3}, type:"POST", dataType:"TEXT", success: function(data){ alert("发起成功!"); } }); }) </script> </html>
shenhe.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> </head> <body> <h1>审核页面</h1> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>流程代号</td> <td>发起者</td> <td>发起内容</td> <td>是否结束</td> <td>发起时间</td> <td>操作</td> </tr> <?php session_start(); include("../fengzhuang/DBDA.class.php"); $db = new DBDA(); $uid = $_SESSION["uid"]; echo $uid; //查找登录者参与的所有流程 $sql = "select * from lc_userflow where code in(select code from lc_flowpath where uids='{$uid}')"; $arr = $db->Query($sql); //显示 foreach($arr as $v) { //判断该流程走到登录者 $lcdh = $v[1]; //流程代号 $towhere = $v[6];//流程走到哪 $sql = "select orders from lc_flowpath where code='{$lcdh}' and uids='{$uid}'"; $order = $db->StrQuery($sql);//该人员在流程中的次序 if($towhere>=$order) { $caozuo = ""; if($towhere==$order) { $caozuo="<a href='tongguo.php?code={$v[0]}'>通过</a>"; } else { $caozuo="<span style='background-color:green;color:white'>已通过</span>"; } echo "<tr> <td>{$v[1]}</td> <td>{$v[2]}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td>{$v[5]}</td> <td>{$caozuo}</td> </tr>"; } } ?> </table> </body> </html>
tongguo.php
<?php session_start(); include("../fengzhuang/DBDA.class.php"); $db = new DBDA(); //流程往下走 $code = $_GET["code"]; $sql = "update lc_userflow set towhere=towhere+1 where ids='{$code}'"; $db->Query($sql,0); //判断流程是否结束 $sql = "select * from lc_userflow where ids='{$code}'"; $arr = $db->Query($sql); $lcdh = $arr[0][1]; //流程代号 $tw = $arr[0][6]; //流程走到哪 $sql = "select count(*) from lc_flowpath where code='{$lcdh}'"; $count = $db->StrQuery($sql); //该流程节点人数 if($tw>=$count) { $sql = "update lc_userflow set isok=1 where ids='{$code}'"; $db->Query($sql,0); } header("location:shenhe.php");
Zhang San sends a leave application process,
Li Si’s page:
Click After passing
database:towhere becomes 1
Then the horse seven:
Then there is Zhang San:
Database: isok becomes 1
Related learning recommendations: PHP programming from entry to proficiency
The above is the detailed content of How to implement process management in php?. For more information, please follow other related articles on the PHP Chinese website!