PHP 流程管理
Posted 不见晨曦的占星师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 流程管理相关的知识,希望对你有一定的参考价值。
添加新流程页面:
<div> 请选择流程节点:<br /><br /> <?php session_start(); include("../DBDA.class.php"); $db = new DBDA(); $suser ="select * from users"; $auser = $db->Query($suser); foreach($auser as $v) { echo "<input class=‘rd‘ type=‘radio‘ name=‘user‘ value=‘{$v[0]}‘ /> {$v[2]} "; } ?> </div> <br /> <div><input type="button" value="添加节点" id="jiedian" /></div> <br /> <div> <?php $attr = array(); if(!empty($_SESSION["user"])) { $attr = $_SESSION["user"]; } foreach($attr as $k=>$v) { $sname = "select name from users where uid=‘{$v}‘"; $name = $db->StrQuery($sname); echo "<div>{$k}--{$name}--<input type=‘button‘ value=‘删除‘ bs=‘{$k}‘ class=‘shanchu‘ /></div>"; } ?> </div> <br /> <div> 请输入流程名称: <input type="text" id="name" /> </div> <br /> <input type="button" value="保存" id="xinjian" /> <script type="text/javascript"> $("#jiedian").click(function(){ //取选中的用户名 var uid =""; var rd = $(".rd"); for(var i=0;i<rd.length;i++) { if(rd.eq(i).prop("checked")) { uid = rd.eq(i).val(); } } $.ajax({ url:"chuli.php", data:{uid:uid,type:0}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="add.php"; } }); }) $(".shanchu").click(function(){ var sy = $(this).attr("bs"); $.ajax({ url:"chuli.php", data:{sy:sy,type:1}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="add.php"; } }); }) $("#xinjian").click(function(){ var name = $("#name").val(); $.ajax({ url:"chuli.php", data:{name:name,type:2}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="add.php"; } }); }) </script>
添加新流程(及其他)处理页面:
<?php session_start(); include("../DBDA.class.php"); $db = new DBDA(); $type = $_POST["type"]; switch($type) { case 0: $uid = $_POST["uid"]; if(empty($_SESSION["user"])) { $_SESSION["user"] = array($uid); } else { $attr = $_SESSION["user"]; $attr[] = $uid; $_SESSION["user"] = $attr; } break; case 1: $sy = $_POST["sy"]; $attr = $_SESSION["user"]; unset($attr[$sy]); $attr = array_values($attr); $_SESSION["user"] = $attr; break; case 2: $name = $_POST["name"]; $code = time(); $slc = "insert into liucheng values(‘{$code}‘,‘{$name}‘)"; //liucheng 名字 代号 $db->Query($slc,0); $attr = array(); if(!empty($_SESSION["user"])) { $attr = $_SESSION["user"]; } foreach($attr as $k=>$v) { $sfp = "insert into flowpath values(‘‘,‘{$code}‘,‘{$v}‘,‘{$k}‘)"; //flowpath 流程具体经过哪些人 $db->Query($sfp,0); } break; case 3: $code = $_POST["code"]; $nr = $_POST["nr"]; $uid = $_SESSION["uid"]; $rq = time(); $sql = "insert into userflow values(‘‘,‘{$code}‘,‘{$uid}‘,‘{$nr}‘,0,‘{$rq}‘,0)"; //userflow 流程具体内容,名字,发起人 $db->Query($sql,0); //,内容,是否通过,事件,进行到哪一步 break; }
登录后主页面:
<a href="faqi.php">发起流程</a> <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("../DBDA.class.php"); $db = new DBDA(); $uid = $_SESSION["uid"]; $sql = "select * from userflow"; $attr = $db->Query($sql); foreach($attr as $v) { $v[1];//流程代号 $v[6]; //流程走到哪了 //根据流程代号和当前登录者用户名查orders $szai="select count(*) from flowpath where code=‘{$v[1]}‘ and uids=‘{$uid}‘"; $n = $db->StrQuery($szai); //该人员在该流程下 if($n>0) { $sorder = "select orders from flowpath where code=‘{$v[1]}‘ and uids=‘{$uid}‘"; $order = $db->StrQuery($sorder); if($v[6]>=$order) { $str = ""; if($v[6]==$order) { $str = "<a href=‘tongguo.php?ids={$v[0]}‘>通过</a>"; } else { $str = "<span style=‘color:green‘>已处理</span>"; } echo "<tr><td>{$v[2]}</td> <td>{$v[5]}</td> <td>{$v[1]}</td> <td>{$v[3]}</td> <td>{$v[4]}</td> <td>{$str}</td></tr>"; } } } ?> </table>
发起流程页面:
<h1>发起流程</h1> <div> 请选择要发起的流程: <select id="sel"> <?php include("../DBDA.class.php"); $db = new DBDA(); $sql = "select * from liucheng"; $attr = $db->Query($sql); foreach($attr as $v) { echo "<option value=‘{$v[0]}‘>{$v[1]}</option>"; } ?> </select> </div> <br /> <div> 请输入流程的详情: <textarea id="xq"></textarea> </div> <br /> <input type="button" value="发起" id="btn" /> <script type="text/javascript"> $("#btn").click(function(){ var code = $("#sel").val(); var nr = $("#xq").val(); $.ajax({ url:"chuli.php", data:{code:code,nr:nr,type:3}, type:"POST", dataType:"TEXT", success: function(data){ window.location.href="main.php"; } }); }) </script>
判断发起的流程是否通过页面:
<?php session_start(); include("../DBDA.class.php"); $db = new DBDA(); $ids = $_GET["ids"]; $sql = "update userflow set towhere = towhere+1 where ids=‘{$ids}‘"; $db->Query($sql,0); $stw = "select code,towhere from userflow where ids=‘{$ids}‘"; $atw = $db->Query($stw); $lcdaihao = $atw[0][0]; $towhere = $atw[0][1]; $jiedian = "select count(*) from flowpath where code=‘{$lcdaihao}‘"; $shuliang = $db->StrQuery($jiedian); if($towhere>=$shuliang) { $su = "update userflow set isok =1 where ids=‘{$ids}‘ "; $db->Query($su,0); } header("location:main.php");
以上是关于PHP 流程管理的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
VSCode自定义代码片段15——git命令操作一个完整流程
Sublime Text自定制代码片段(Code Snippets)