博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP之流程的控制
阅读量:5327 次
发布时间:2019-06-14

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

   在一个公司中,员工肯定会有高层、中层和普通员工的,这样如果在某个公司员工遇到某种问题,需要请假、或者提一些请求的时候,就会需要去申请,申请的时候有的是可以直接和上级申请的,有时比较重要的事情,是要经过层层申请,才可以得到解决的,这就会让我们想到了流程,今天写的就是一个简单的流程控制,设计的表中人员可能比较不那么精确,但是逻辑是一样的。

   这里我是在数据库中设计了四张表格的,分别是 users flowpath liucheng  userflow

 

  上面显示的就是我所用到的四张表格,现在要做的就是把员工的姓名都显示出来,可供选择到底要经过哪几个人的同意才可以把这件事做成,再就是 还要输入我们所要申请的事情,最后就是保存上交,让上级同意才可以

  首先我要建主页main.php 把我所需要的内容显示出来 ,然后再把里面的按钮功能显示出来即可,如果是比较简单的内容我就直接内嵌php了,其他的选用的是ajax来调用,看起来可能会比较清晰一些 ps:这当然是自我感觉了 哈哈哈

 毫无疑问,肯定会用到jquery  所以需要先调用jquery包

 主页最开始还是要把员工的姓名都显示出来 这样方便选择节点人物 我用的是内嵌php的方法,这一步是最基础的,肯定都会看明白,这里就不详细描述了

1 

选择节点人员

2
3
17

接下来是添加节点的按钮了

既然按钮已经有了,随后我们就会想到的是按钮的功能:就是要把上面选择的节点人员添加到按钮下方

//添加节点点击事件    $("#jd").click(function(){        var uid = $("#user").val();   //点击添加节点,是要把select里面的value值添加过来,那么我们就要先取出它的value值        $.ajax({            url:"chuli.php",            data:{uid:uid},            type:"POST",            dataType:"TEXT",            success: function(data){                window.location.href="main.php"; //刷新页面即可            }        });    })

   处理页面就是类似于添加购物车的功能,首先我们会想到现在节点里面有内容吗,如果没有的话,我们需要先建一个数组,然后再把现有的内容用session存一下

1 

   处理页面写好之后,再回到要添加节点的地方,这时如果节点不为空的话,我们就要把添加的节点显示出来,如果为空就什么也不显示了(这里可以不用考虑),

$v) { $sname = "select name from users where uid='{
$v}'"; $name = $db->StrQuery($sname); echo "
{
$k}--{
$name}--
"; //这里运用索引会比较简单一些,索引我们的可以 用的是索引$k }}?>

如图所示,就是点击添加节点后的效果呢,看到删除按钮了,那么接下来就是点击删除按钮的方法了,这里我用的同样还是ajax

 

 

1 //删除节点的点击事件 2     $(".del").click(function(){ 3         var key=$(this).attr("key"); //删除里面取key值写起来是非常方便的 4         $.ajax({ 5             url:"shanchu.php", 6             data:{key:key}, 7             type:"POST", 8             dataType:"TEXT", 9             success:function(aa)10             {11                 window.location.href="main.php";12             }13         })14     })

下面是删除页面的代码:

 删除就写完了,点击删除就可以把添加的某条内容删除,然后我们就要考虑content了 输入流程名称 最后把添加的节点和写入的流程名称都保存

1 
请输入流程名称:
2
3
1 //保存按钮的点击事件 2    $("#btn").click(function(){ 3         var nr=$("#nr").val();   4         $.ajax({ 5             url:"baocun.php", 6             data:{nr:nr}, 7             type:"POST", 8             dataType:"TEXT", 9             success:function(bc){10                 alert("保存成功");11 12             }13 14         })15     })
1 
Query($sql,0); 9 10 //在liucheng表中添加完之后还要保存节点 节点是在flowpath表中的11 12 $arr = $_SESSION["user"];13 foreach($arr as $k=>$v)14 {15 $sqn="insert into flowpath VALUES ('','{
$code}','{
$v}','{
$k}')";16 $db->Query($sqn,0);17 }

  写到这里就可以保存了,点击保存后,进数据库刷新就会显示出你所保存的内容了

  申请提交后,我们就会去考虑,这个申请由谁来审核呢,那就涉及到需要上级登录后是否给通过了,因为登录之前已经写过很多次了,我这里就不再写了,用简单的一个伪登录就可以了

 

 

现在我们就要发起流程了

1 

请选择发起的流程

2
14 15 16 17

看到发起的按钮,本能的就会想到要给发起按钮一个点击事件,那么有点击事件就会有处理页面 我们用到的是chuli1.php 就是为了给userflow表添加内容

1 
Query($sql,0);

发起完成之后就要进入审核页面了

 

1 

审核页面

2 通过已通过
3
4
5
6
7
8
9
10
11
Query($sql);21 //显示在页面22 foreach($arr as $v)23 {24 $dh=$v[1];//查出代号25 $where=$v[6]; //查出流程到哪里了26 27 $sqn="select orders from flowpath where code='{
$dh}' and uids='{
$uid}'";28 $orders=$db->StrQuery($sqn);//查出在流程中的次序29 30 if($where>=$orders)31 {32 $caozuo = "";33 if($where==$orders)34 {35 $caozuo="";36 }37 else38 {39 $caozuo="";40 }41 echo "
42
43
44
45
46
47
48
";49 }50 51 }52 ?>53 54
流程代号 发起者 发起内容 是否结束 发起时间 操作
{
$v[1]}
{
$v[2]}
{
$v[3]}
{
$v[4]}
{
$v[5]}
{
$caozuo}

 

下面就是通过页面了,

Query($sql,0);//判断流程是否结束$sql = "select * from userflow where ids='{
$code}'";$arr = $db->Query($sql);$lcdh = $arr[0][1]; //流程代号$tw = $arr[0][6]; //流程走到哪$sql = "select count(*) from flowpath where code='{
$lcdh}'";$count = $db->StrQuery($sql); //该流程节点人数if($tw>=$count){ $sql = "update userflow set isok=1 where ids='{
$code}'"; $db->Query($sql,0);}header("location:shenhe.php");

要注意的是:如果用伪登录,那么要先运行一下,然后再运行其他页面,不然uid是取不到的

 

 

 

 

  

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xiaodouding/p/6605265.html

你可能感兴趣的文章
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>