博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php流程管理练习
阅读量:5223 次
发布时间:2019-06-14

本文共 5679 字,大约阅读时间需要 18 分钟。

今天我们做一个流程管理:

1.流程管理的用法是什么样的?

2.怎么发起想要的流程?

3.审批的人要是怎么审批通过?

4.流程审核是不是要挨个走过?

一、

做这个流程管理肯定要有数据库:

二、数据库结束后,就是新建流程的页面,这页面会有审核人员,还有流程的名字还有提交的按钮

(1)添加节点的人员,这个是要遍历数据库来查看都什么管理人员

1 
2   请选择节点人员: 3 4
Query($suser); //执行查询语句11 foreach($auser as $v)12 {13 echo "
{$v[2]} "; //输出单选按钮,数组中的索引2,也就是用户名,但是它的值是代号14 }15 ?>16

查看一下显示结果:

(2)既然后选择审核人员,那么就是有添加的按钮

(3)对这个按钮添加点击事件

 

1 $("#insert").click(function(){ 2     var ck = $(".ck");  //找到项 3     var uid = ""; 4     for(var i=0;i

(4)添加节点的处理页面

1 

(5)在主页面中显示添加的这些节点

1 
还没有添加节点"; //输出这句话 5 } 6 else 7 { 8 $attr = $_SESSION["jiedian"]; //数组中有了值 9 foreach($attr as $k=>$v) //循环遍历,$v只是名字,还有有所以所以用$k10 {11 $sname = "select name from users where uid='{
$v}'"; //编写查询语句12 $name = $db->StrQuery($sname); //执行查询语句
          //输出索引号还有名字,加一个删除按钮吧,可以吧这个节点删除13 echo "
{
$k}--{
$name}--
"; 14 }15 }16 ?>

然后我们看看效果:

1.还没有添加节点的效果图:  

2.随便添加几个审核人员:人员已经显示出来了

 (6)这样之后就是对其的删除按钮添加单击事件了

1 $(".sc").click(function(){ 2     var sy = $(this).attr("sy");  //点击这个按钮,选中这个的索引号 3     $.ajax({ 4         url:"shanchu.php",   //删除按钮的处理页面 5         data:{sy:sy},  //把索引号传到处理页面 6         type:"POST",  //传值方式 7         dataType:"TEXT", 8         success:function(data){ 9             window.location.href="liucheng_gaunli.php";  //执行处理页面成功后会刷新页面10         }11     });12 })

(7)删除按钮的处理页面

1 

查看下删除节点的效果

1.没有删除之前

2.删除一个节点之后

(8)节点的操作已经结束之后,那么就是流程的名称了,这个简单,写名称的文本框:重要的就是对这个流程的保存了,那么也要有保存按钮

请输入流程名称:
//起个名字,下面保存的写个单击事件有用
//保存按钮要有单击事件的

这样整体的效果图就出来了:  

(9)最后就是保存按钮的单击事件了

1 $("#save").click(function(){ 2   var name = $("#name").val();  //取到文本框的值 3   $.ajax({ 4     url:"baocun.php",  //保存的处理页面 5     data:{name:name},  //将文本框的值传到处理页面 6     type:"POST",  //传值方式 7     dataType:"TEXT", 8     success: function(data){ 9         alert("添加成功!");  //执行处理页面成功后会弹出提示框10       }11   });
})

(10)保存流程的处理页面

1 
Query($sflow,0); //执行语句11 12 $attr = $_SESSION["jiedian"]; 13 foreach($attr as $k=>$v)14 {15 $spath = "insert into flowpath values('','{
$code}','{
$v}','{
$k}')"; //修改流程节点的数值16 $db->Query($spath,0); //执行语句17 }

看下保存效果:

看下数据库,内容也保存数据库了

 

三、新建流程页面已经结束了,那么就是用户登录页面了,这个页面写了很多遍了,不多说了,直接上代码

(1)登录的基本显示:都是些基本语句

1 

用户登录

2
账号:
3
密码:
4

(2)这里登录,我们也用ajax进行登录吧

1 $("#btn").click(function(){  //对登录按钮添加单击事件 2   var uid=$("#uid").val();  //获取用户的值 3   var pwd=$("#pwd").val();  //获取密码的值 4   $.ajax({ 5     url:"logincl.php",  //编写登录的处理页面 6     data:{uid:uid,pwd:pwd},  //将用户和密码传到处理页面 7     type:"POST", 8     dataType:"text", 9     success: function(data)10     {11       if(data.trim()=="OK")12       {13         window.location.href="main.php";    //处理页面执行成功后,跳转到主页面14       }15       else16       {17         alert("用户名密码输入错误");  //否则就提示错误18       }19     }20   })      21 })

(3)看下处理页面的编写

1 
//查询语句 8 $sql = " select pwd from users where uid='{
$uid}' and pwd='{
$pwd}' "; 9 //执行语句10 $attr = $db->Query($sql);11 if(!empty($pwd) && !empty($attr) && $attr[0][0]==$pwd)12 {13 $_SESSION["uid"] = $uid; //session接收用户值14 echo "OK";15 }16 else17 {18 echo "ON";19 }20 ?>

最后,我们看下最后结果,登录成功就会进入主页,登录失败会提示错误

   

 

四、节点用户的审核处理界面了(对于这个审核界面有很多需要注意的地方)

(1)登录成功界面的显示部分:并不是每个人登录成功界面是一样的,还有就是如果这个人员不参与审核的话,也应该是没有信息的才对

想要显示的表头,也就是一行:我们可以用表来显示

1 2    流程代号3    发起者4    发起内容5    是否结束6    发起时间7    操作8 

先看下表头的显示:

(2)开启一下session这样登录者的信息就会保存下来

1 session_start(); 2 include("DBDA.class.php");  //会用到数据库,所以可以调用一下数据库的类 3 $db = new DBDA();  //造新对象 4 $uid = ""; 5 if(empty($_SESSION["uid"]))  //判断保存的session值是不是为空 6 { 7   header("location:login.php");  //为空就返回登录页面 8 } 9 else10 {11   $uid = $_SESSION["uid"];  //不为空就输保存一下用户12 }

(3)接下来就是用户这是不是和流程有关系?流程走到哪了(分情况)?还有就是有没有通过

1 //查询登录者参与的所有流程 2 $su_flow = "select * from userflow where code in(select code from flowpath where uids='{
$uid}')"; 3 $au_flow = $db->Query($su_flow); //执行查询语句 4 5 foreach($au_flow as $vu_flow) 6 { 7   $towhere = $vu_flow[6]; //流程走到哪里了 8 9   //找到登录者在该流程中的位置10   $s_weizhi = "select orders from flowpath where code='{
$vu_flow[1]}' and uids='{
$uid}'";11   $wezhi = $db->StrQuery($s_weizhi); //该人员在流程中的位置12 13   if($towhere>=$wezhi)14   {15     $caozuo = "";16     if($towhere==$wezhi)17     {18   //流程正好走到登录者位置19   $caozuo="通过"; //get方式传过处理页面20     }21     else22     {23   //流程走过登录者24   $caozuo = "已通过";25     }26     echo "{
$vu_flow[1]}{
$vu_flow[2]}{
$vu_flow[3]}{
$vu_flow[4]}{
$vu_flow[5]}{
$caozuo}";27   }28   else
  {29     //流程未走到登录者30   }31 }

(4)通过的处理页面

$ids = $_GET["ids"]; //将代号传过来$sql = "update userflow set towhere=towhere+1 where ids='{
$ids}'"; //修改towhere的值看已经执行到哪了$db->Query($sql,0); //执行修改语句 $swhere = "select * from userflow where ids='{
$ids}'"; $attr = $db->Query($swhere); $towhere = $attr[0][6]; //走到哪了$code = $attr[0][1]; //流程代号$ssl = "select count(*) from flowpath where code='{
$code}'"; //查询总数$pcount = $db->StrQuery($ssl); //该流程节点人员数量 if($towhere>=$pcount){
  $sql = "update userflow set isok=true where ids='{
$ids}'"; //修改是不是已经通过了  $db->Query($sql,0);}header("location:main.php");

(1)我们先要新建个流程,这是第一个页面,我们就用新建流程

看下结点还有流程名称   来看下数据库中结点的表     

根据这些我们在流程表中自己先添加信息吧,等后来再通过发起流程添加,现在只看下效果

登录审核人员的账号看下:

第一个人是李四:

我们点击通过,继续往下走

第二个人是马七,我们不点通过,看下下一个人员(王五)有没有这个通过的操作:是没有这个操作的

我们让马七通过审核,再看下王五的界面

  王五的界面就是:就发现有了这个操作,继续下去,我们看下最后这个通过会不会变成1

最后审核人员张三    

看下结果是否会结束:

再看下数据库中towhere中的数值是不是已经结束了:

 

这个就剩下发起流程的步骤了,可以先看下效果:

(1)发起流程有个链接页面,单击这个,可以链接到发起流程页面

  

(2)这个及时发起流程的页面了

这就是整个流程管理的做法和思路了,有问题可以一起讨论学习。

转载于:https://www.cnblogs.com/axj1993/p/6604771.html

你可能感兴趣的文章
Java 静态代码块&构造代码块&局部代码块
查看>>
asp.net定时执行程序
查看>>
linux tail命令的使用!!!
查看>>
Fragstats景观分析研究
查看>>
常见简单算法
查看>>
转载->CPU的内部架构和工作原理
查看>>
sheepdog简介
查看>>
收集有用的 Javascript 片段
查看>>
Android 不能静态注册的广播
查看>>
SGU 140 扩展欧几里得
查看>>
arcengine模糊查询不起作用
查看>>
Navicat 连接docker mysql报错
查看>>
linux学习:文件处理相关命令用法整理(正则表达式)
查看>>
Visual Studio跨平台开发(4):Xamarin Android控制项介绍
查看>>
sql2008r2数据库附加的问题
查看>>
BZOJ.4820.[SDOI2017]硬币游戏(思路 高斯消元 哈希/AC自动机/KMP)
查看>>
PCA主成分分析
查看>>
extjs TriggerAction:"all" (转载)
查看>>
[python]set集合学习
查看>>
g2o使用总结
查看>>