添加新流程页面:

<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]} &nbsp;";
} ?> </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 流程管理的更多相关文章

  1. 熊乐:H3 BPM为加速企业流程管理提供源动力

    近日,在北京·金隅喜来登酒店,H3 BPM以"让天下没有难用的流程"为主题,正式发布H3 BPM10.0版本.全新的业务流程管理系统在易用性方面大大提升,并且全面支持Java与.N ...

  2. 从国内流程管理软件市场份额看中国BPM行业发展

    随着互联网+.中国制造2025.工业4.0等国家战略的支持与引导,企业在数字经济时代的信息化表现惊人,越来越多企业认识到,对于企业的发展来说,信息自动化远远还不够,企业的战略.业务和IT之间需保持高度 ...

  3. 制造行业流程管理的“IPO”思维

    流程管理是企业从流程角度出发,关注流程是否增值的一套管理体系.从认识流程.到建立流程.到管理流程.再到优化流程,企业管理人员要去除不增值和低价值的流程,减少员工犯错误的机会,建立一套卓越的流程体系. ...

  4. jquery miniui , 普加甘特图,流程管理

    http://www.miniui.com/docs/quickstart/index.html 普加 甘特图 流程管理 http://www.plusgantt.com/project/demo/P ...

  5. JBPM4入门——4.封装流程管理的工具类(JbpmUtil)

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  6. php之 有点复杂的 流程管理

    1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一.还是要有数据库的内容的 肯定会有表的,首先就是用户表了,然后就是流程表,用 ...

  7. php流程管理练习

    今天我们做一个流程管理: 1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一. 做这个流程管理肯定要有数据库: 二.数据库结束 ...

  8. PHP流程管理,堪比小小程序

    这个流程管理是从用户登录界面开始,然后提交申请,页面逐级审核通过.这个做起来其实挺简单,只是在某些逻辑方面需要 好好考虑一下. 登录页面就不再多说了,如果要存session的话,我们可以建一个假的登录 ...

  9. 05、NetCore2.0依赖注入(DI)之Web应用启动流程管理

    05.NetCore2.0依赖注入(DI)之Web应用启动流程管理 在一个Asp.net core 2.0 Web应用程序中,启动过程都做了些什么?NetCore2.0的依赖注入(DI)框架是如何管理 ...

  10. PHP实现流程管理功能

    核心逻辑:流程管理,在各种系统中扮演很重要的地位,可以把设定好的流程放入系统中,规定好几个节点,只要所有节点都通过,就可以通过. 建立四张数据库表: 1.我们首先做一个新建流程页面 flow.php, ...

随机推荐

  1. Java 堆

    特性: 虚拟机启动时创建的线程共享的内存区域,所有实例对象和数组对象分配内存的区域 GC垃圾手机管理器管理的主要区域,GC堆 容量可以固定,也可以动态扩展,自动收缩 -Xmx最大堆大小 -Xms最小. ...

  2. 【转】Hive 基础之:分区、桶、Sort Merge Bucket Join

    Hive 已是目前业界最为通用.廉价的构建大数据时代数据仓库的解决方案了,虽然也有 Impala 等后起之秀,但目前从功能.稳定性等方面来说,Hive 的地位尚不可撼动. 其实这篇博文主要是想聊聊 S ...

  3. [django]django+post+ajax+highcharts使用方法

    直接代码展示: view.py文件代码 from django.http import JsonResponse #django ajax部分 def ajax_kchart(request): ti ...

  4. EF级联删除

    引言     在主表中指定Key,子表中指定Required后,并不会在数据库中生成级联删除的外键.那怎么才能使EF在数据中生成级联删除的外键? SQLServer数据库中级联删除功能配置界面: 上图 ...

  5. java设计模式之组合模式

    组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 & ...

  6. 虚拟机linux上网问题

    VMware中虚拟机网络的三种设置 1.桥接(bridged)(设置上网比较繁琐,但是在嵌入式开发中比较有用)2.NAT(上网比较简单,但是不能用于嵌入式开发中)3.Host only (该模式下仅主 ...

  7. Ubuntu1604中mysql的登录问题

    自从Ubuntu 1604出来后,新安装了尝试了下,在安装到mysql的时候用root登录不了,在网上查了很多资料都没找到解决办法.后来su到系统的root后直接就可以登录mysql了,看到Ubunt ...

  8. AC日记——最大数 洛谷 P1198 [JSOI2008]

    题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前数列的长度. 2. 插入操作 ...

  9. React-Router学习整理

    欢迎大家指导与讨论 : ) 一.前言 本文摘要:react-router的基本用法,动画效果与路由,路由权限控制,路由离开确认,根据路由切分的按需加载,路由组件的属性.本文是笔者在学习时整理的笔记,由 ...

  10. CentOS7安装MySQL、Redis、RabbitMQ

    系统版本 CentOS Linux release 7.2.1511 (Core) MySQL安装 一.下载mysql的repo源 wget http://repo.mysql.com/mysql-c ...