PHP 流程
登录页面
<body>
<form action="loginchuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="text" name="pwd" /></div>
<input type="submit" value="登录" />
</form>
</body>
</html> 登录处理页面
<?php
session_start();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"]; include("../DBDA.php");
$db = new DBDA(); $sql = "select count(*) from Users where Uid='{$uid}' and Pwd = '{$pwd}'"; $z = $db->StrQuery($sql); if($z == 1)
{
$_SESSION["uid"] = $uid;
header("location:main.php");
}
else
{
header("location:login.php");
} 主页面
<head>
<?php
session_start(); if(empty($_SESSION["uid"]))
{
header("location:login.php");
exit;
}
$uid = $_SESSION["uid"]; include("../DBDA.php");
$db = new DBDA();
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
#menu
{
width:100%;
height:30px;
}
.z
{
width:100px;
height:30px;
float:left;
}
</style> </head> <body>
<br />
<br />
<center><h1>主页面</h1></center>
<br /> <div id="menu">
<div class='z'><a href="xinjian.php">新建流程</a></div>
<div class="z"><a href="faqi.php">发起流程</a></div>
<div class="z"><a href="shenhe.php">审核流程</a></div>
</div> </body>
</html>
新建流程页面
<script src="../jquery-1.11.2.min.js"></script>
</head> <body>
<?php
session_start(); include("../DBDA.php");
$db = new DBDA(); $attr = array();
if(!empty($_SESSION["jiedian"]))
{
$attr = $_SESSION["jiedian"];
} ?>
<h1>新建流程</h1>
<div>
请选择节点人员:
<?php
$sry = "select * from Users";
$ary = $db->Query($sry); foreach($ary as $v)
{
echo "<input name='ry' class='ry' type='radio' value='{$v[0]}' /> {$v[2]}";
} ?>
</div>
<br />
<div>
<input type="button" value="添加节点" id="tjjd" />
</div>
<br />
<div>
<?php
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='sc' /></div>";
}
?>
</div>
<br />
<div>
请输入流程名称:
<input type="text" id="mc" />
</div>
<br />
<div>
<input type="button" value="添加" id="add" />
</div>
<a href="main.php">返回</a>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
//设置默认选中第一项
$(".ry").eq(0).prop("checked",true); //添加节点按钮点击事件
$("#tjjd").click(function(){ var rd = $(".ry");
//取选中的用户名
var uid = "";
for(var i=0;i<rd.length;i++)
{
if(rd.eq(i).prop("checked"))
{
uid = rd.eq(i).val();
}
} $.ajax({
url:"tjjd.php",
data:{uid:uid},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location = "xinjian.php";
} }); })
//删除节点按钮事件
$(".sc").click(function(){ var id = $(this).attr("bs");
$.ajax({
url:"scjd.php",
data:{id:id},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location = "xinjian.php";
} }); })
//添加流程按钮
$("#add").click(function(){ var name = $("#mc").val();
$.ajax({
url:"tjlc.php",
data:{name:name},
type:"POST",
dataType:"TEXT",
success: function(data){
if(data.trim()=="OK")
{
alert("添加成功");
}
else
{
alert("添加失败!");
}
} }); }) });
</script>
</html> 添加节点页面
<?php
session_start(); $uid = $_POST["uid"]; if(empty($_SESSION["jiedian"]))
{
$attr = array($uid);
$_SESSION["jiedian"] = $attr;
}
else
{
$attr = $_SESSION["jiedian"];
array_push($attr,$uid);
$_SESSION["jiedian"] = $attr;
} 删除节点页面
<?php
session_start(); $id = $_POST["id"];
$attr = $_SESSION["jiedian"];
unset($attr[$id]);
$attr = array_values($attr); $_SESSION["jiedian"] = $attr; 添加流程页面
<?php
session_start(); include("../DBDA.php");
$db = new DBDA(); $attr = array();
if(!empty($_SESSION["jiedian"]))
{
$attr = $_SESSION["jiedian"];
} $name = $_POST["name"]; //向流程表添加数据
$code = date("YmdHis");
$slc = "insert into LiuCheng values('{$code}','{$name}')";
//判断是否执行成功的变量
$isok = true;
if($db->Query($slc,0))
{
foreach($attr as $k=>$v)
{
//向流程对应节点表添加数据
$sfl = "insert into FlowPath values('','{$code}','{$v}',{$k})";
$isok = $isok && $db->Query($sfl,0);
}
}
if($isok)
{
echo "OK";
}
else
{
echo "NO";
} 发起流程页面
<script src="../jquery-1.11.2.min.js"></script>
</head> <body>
<?php
include("../DBDA.php");
$db = new DBDA();
?>
<h1>发起流程</h1>
<div>
请选择流程:
<select id="lc">
<?php
$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 style="width:300px; height:200px" id="nr">
</textarea>
</div>
<br />
<div>
<input type="button" value="发起" id="fq" />
</div>
<a href="main.php">返回</a>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
$("#fq").click(function(){ var code = $("#lc").val();
var nr = $("#nr").val(); $.ajax({
url:"fqcl.php",
data:{code:code,nr:nr},
type:"POST",
dataType:"TEXT",
success: function(data){
if(data.trim()=="OK")
{
alert("发起成功");
}
else
{
alert("发起失败!");
}
} }); })
});
</script>
</html> 发起处理页面
<?php
session_start(); include("../DBDA.php");
$db = new DBDA(); $code = $_POST["code"];
$nr = $_POST["nr"];
$uid = $_SESSION["uid"];
$rq = date("Y-m-d H:i:s"); $sql = "insert into UserFlow values('','{$code}','{$uid}','{$nr}',false,'{$rq}',0)"; if($db->Query($sql,0))
{
echo "OK";
}
else
{
echo "NO";
}
<?php
session_start(); include("../DBDA.php");
$db = new DBDA(); $uid = $_SESSION["uid"]; ?>
<body>
<h1>审核流程</h1>
<br />
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr bgcolor="#3399FF" style="color:white">
<td>流程名称</td>
<td>发起者</td>
<td>内容</td>
<td>是否结束</td>
<td>发起时间</td>
<td>操作</td>
</tr>
<?php /*$sfl = "select Code,Orders from FlowPath where Uids = '{$uid}'";
$afl = $db->Query($sfl); foreach($afl as $v)
{
$suf = "select * from UserFlow where Code='{$v[0]}' and ToWhere >= {$v[1]}"; $auf = $db->Query($suf);
foreach($auf as $v1)
{
echo "<tr>
<td>{$v1[1]}</td>
<td>{$v1[2]}</td>
<td>{$v1[3]}</td>
<td>{$v1[4]}</td>
<td>{$v1[5]}</td>
<td>操作</td>
</tr>";
}
}*/ $suf = "select * from UserFlow order by RiQi desc";
$auf = $db->Query($suf); foreach($auf as $v)
{
//$v[1]流程代号
//$v[6]流程到哪 //根据流程代号到flowpath表查该登录者在该流程中的次序
$sfp = "select Code,Orders from FlowPath where Code='{$v[1]}' and Uids='{$uid}'";
$cx = $db->Query($sfp);
if($cx)
{
$ucode = $cx[0][0];//流程代号
$ucx = $cx[0][1];//次序
//判断该流程是否走到了该用户
if($v[1]==$ucode && $v[6]>=$ucx)
{
$lname = Lname($db,$v[1]);
$fname = Fname($db,$v[2]);
//处理是否结束
$isok = $v[4]?"<span style='已结束</span>":"<span style='background-color:green'>处理中</span>";
//处理操作
$chuli = "";
if($v[6]==$ucx)
{
$chuli="<a href='sh.php?id={$v[0]}'>审核</a>";
}
else
{
$chuli = "<span style='color:green'>已通过</span>";
} echo "<tr>
<td>{$lname}</td>
<td>{$fname}</td>
<td>{$v[3]}</td>
<td>{$isok}</td>
<td>{$v[5]}</td>
<td>{$chuli}</td>
</tr>";
}
} }
//处理流程名
function Lname($db,$code)
{
$sql = "select Name from LiuCheng where Code = '{$code}'";
return $db->StrQuery($sql);
}
//处理发起者名
function Fname($db,$uid)
{
$sql = "select Name from Users where Uid = '{$uid}'";
return $db->StrQuery($sql);
} ?>
</table>
</body>
</html> 审核流程处理页面
<?php
include("../DBDA.php");
$db = new DBDA(); $id = $_GET["id"]; $sql = "update UserFlow set ToWhere = ToWhere+1 where Ids='{$id}'"; if($db->Query($sql,0))
{
//查询流程走到哪了
$stw = "select Code,ToWhere from UserFlow where Ids='{$id}'";
$atw = $db->Query($stw);
$code = $atw[0][0];//流程代号
$tw = $atw[0][1];//流程到哪了 //查询该流程下的节点数
$sfp = "select count(*) from FlowPath where Code = '{$code}'";
$sl = $db->StrQuery($sfp); //如果流程走到位置大于等于了该流程中节点的总数
if($tw>=$sl)
{
$sok = "update UserFlow set IsOk = true where Ids='{$id}'";
$db->Query($sok,0);
} header("location:shenhe.php");
}
else
{
echo "审核失败!";
}
PHP 流程的更多相关文章
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- 基于netty http协议栈的轻量级流程控制组件的实现
今儿个是冬至,所谓“冬大过年”,公司也应景五点钟就放大伙儿回家吃饺子喝羊肉汤了,而我本着极高的职业素养依然坚持留在公司(实则因为没饺子吃没羊肉汤喝,只能呆公司吃食堂……).趁着这一个多小时的时间,想跟 ...
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?
在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- 8、Struts2 运行流程分析
1.流程分析: 请求发送给 StrutsPrepareAndExecuteFilter StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 ...
- Hawk 6. 高级话题:子流程系统
子流程的定义 当流程设计的越来越复杂,越来越长时,就难以进行管理了.因此,采用模块化的设计才会更加合理.本节我们介绍子流程的原理和使用. 所谓子流程,就是能先构造出一个流程,然后被其他流程调用.被调用 ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- zookeeper源码分析之五服务端(集群leader)处理请求流程
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- zookeeper源码分析之三客户端发送请求流程
znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的 ...
随机推荐
- Android开源库loopj的android-async-http的 JsonHttpResponseHandler 存在死循环GC_CONCURRENT
我现在用的是 AndroidAsyncHttp 1.4.4 版本,之前遇到一个很奇怪的问题, 当使用 JsonHttpResponseHandler 解析请求的页面出现服务器错误或其他情况返回的内容不 ...
- HDU 5903 Square Distance
$dp$预处理,贪心. 因为$t$串前半部分和后半部分是一样的,所以只要构造前一半就可以了. 因为要求字典序最小,所以肯定是从第一位开始贪心选择,$a,b,c,d,...z$,一个一个尝试过去,如果发 ...
- django manage.py 的各种功能
[简介] django-admin.py是Django的一个用于管理任务的命令行工具.本文将描述它的大概用法. 另外,在每一个Django project中都会有一个manage.py.manage. ...
- Recursive - leetcode [递归]
经验tips: Recursion is the best friend of tree-related problems. 一是只要遇到字符串的子序列或配准问题首先考虑动态规划DP,二是只要遇到需要 ...
- Grunt使用教程(限winows)
前提:安装nodejs 一. 打开dos命令窗口,输入命令 "node -v",确认nodejs安装成功 二. 其次,安装grunt-cli (该插件是grunt命令行插件),执行 ...
- Struts2中一个自定义拦截器的使用
1.自定义的拦截器的类: package it.web.interceptor; import com.opensymphony.xwork2.ActionContext; import com.op ...
- Zabbix 监控rabbitmq
一 应用场景描述 测试环境业务 OpenStack中搭建了rabbitmq作为RPC消息队列,所以mq起到了很重要的角色,本案例是来如何使用zabbix监控 rabbitmq业务 二 Rabbitmq ...
- 用 yo aspnet 生成.net项目
yo指的是Yeoman 官网:http://yeoman.io/ 因为安装yo需要nmp 因此 要先到node官网下载node并按装 安装之后就可以下一步了 $ npm install -g yo g ...
- mysql无法输入中文
#查看系统的环境变量 echo $LANG zh_CN.UTF-8 vim /etc/sysconfig/i18n 1 LANG="en_US.UTF-8"2 SYSFONT=&q ...
- Hibernate5--课程笔记5
关联关系映射: 关联关系,是使用最多的一种关系,非常重要.在内存中反映为实体关系,映射到DB中为主外键关系.实体间的关联,即对外键的维护.关联关系的发生,即对外键数据的改变. 外键:外面的主键,即,使 ...