PHP에서 프로세스 관리를 구현하는 방법: 먼저 새 프로세스 페이지를 만들고 노드를 만든 다음 노드 담당자를 클릭하여 데이터베이스의 모든 직원 목록을 조정하고 로그인한 사용자가 되어 모든 단계를 제출합니다. 휴가 과정 중.
PHP에서 프로세스 관리를 구현하는 방법:
먼저 새 프로세스 페이지를 만들고 노드를 먼저 완성합니다
xinjian.php
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; }
完成的效果,如图:
点击选择节点人员可以从数据库调所有人员名单,现在把李四,马七和张三放入流程中,做一个请假流程:
点击保存,存到数据库:
注意:Code必须用varchar,不能用time,因为在上面用了时间戳
现在我们在做一个登陆用户,提交请假流程的所有步骤:
weilogin.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> <?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");
chuli. php
rrreee그림과 같이 완성된 효과:
클릭하여 노드 직원을 선택하면 데이터베이스의 모든 직원 목록을 호출할 수 있습니다. 이제 Li Si, Ma Qi 및 Zhang San을 프로세스에 넣고 탈퇴 요청 프로세스:
저장하려면 클릭하세요. 데이터베이스에 저장:
참고: 타임스탬프가 위에서 사용되었기 때문에 코드는 시간이 아닌 varchar를 사용해야 합니다.이제 로그인 사용자를 만들고 탈퇴 프로세스의 모든 단계를 제출합니다.
weilogin.php 가짜 account
rrreeefaqi .php
shenhe.php
rrreee
tongguo.php
rrreee
Zhang San이 보낸 메일 요청 프로세스 종료, Li Si 페이지:클릭 후🎜🎜🎜🎜 데이터베이스: towhere 1 🎜🎜🎜🎜🎜 다음은 Horse Seven: 🎜🎜 🎜🎜🎜 그럼 다음은 Zhang San: 🎜🎜🎜🎜 🎜데이터베이스: isok이 1🎜🎜🎜🎜🎜🎜이 되었습니다. 관련 학습 권장 사항: 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜
위 내용은 PHP에서 프로세스 관리를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!