A-A+

php+ajax发起流程和审核流程(以请假为例)

2017年06月28日 PHP博文 暂无评论

上一篇随笔中已经提到如何新建流程,那么现在我们就来看一下如何发起一个流程和审核流程~~~

先说一下思路:

(1)登录用session获取到用户的id

 (2) 用户发起一个流程

         注意:需要写申请事由

(3)处于节点的审核人去依次审核

          注意:每审核通过一个,对应towhere字段要加1; 审核到最后时,对应的isok字段要变为1(此处1表示结束,0表示未结束)

共用到三张表:

php+ajax发起流程和审核流程(以请假为例) 1

第一步:先做一个简单的登录页面,用session获取用户名:

denglu.php页面

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form method="post" action="denglu-cl.php">  用户名:<input type="text" name="uid" /><br />  密码:<input type="password" name="pwd" /><br />  <input type="submit" value="http://www.jb51.net/article/登录" /> </form> </body></html> 

  denglu-cl.php页面

<?phpsession_start();require "../DB.class.php";$db = new DB();$uid = $_POST["uid"];$pwd = $_POST["pwd"];$sql = "select pwd from users where uid='{$uid}'";$mm = $db->strquery($sql);if($pwd==$mm && !empty($pwd)){ $_SESSION["uid"]=$uid; header("location:liucheng.php");}else{ echo "密码或登录名输入错误";}?> 

  效果图:

php+ajax发起流程和审核流程(以请假为例) 2

第二步:做个简单的注页面:liucheng.php

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style>  #body{  height: 200px;  width: 300px;  background-color: gainsboro;  margin: 200px auto;  text-align: center;  vertical-align: middle;  line-height: 30px;  } </style> </head> <body> <div id="body"> <h2>主页面</h2> <div>  <a href="http://www.jb51.net/article/faqi.php" rel="external nofollow" >发起流程</a><br />  <a href='http://www.jb51.net/article/shenhe.php'>审核流程</a> </div> </div> </body></html> 

 效果图:

php+ajax发起流程和审核流程(以请假为例) 3

第三步:发起流程页面faqi.php

(1)先将所有流程用下拉列表显示

(2)发起流程事由需要由登录用户填写

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title>  <style>  #body{  height: 250px;  width: 300px;  background-color: gainsboro;  margin: 200px auto;  text-align: left;  vertical-align: middle;  line-height: 30px;  padding-left: 30px;  } </style> </head> <body> <div id="body">  <form method="post" action="faqi-cl.php">  <h2>发起流程页面</h2>  <select id="lc">  <?php   require "../DB.class.php";   $db = new DB();   $sql = "select * from liucheng";   $arr = $db->query($sql);   foreach($arr as $v)   {   echo "<option value='http://www.jb51.net/article/{$v[0]}'>{$v[1]}</option>";    }     ?>  </select><br />  发起流程事由:  <textarea class="nr"> </textarea><br />  <input type="button" value="http://www.jb51.net/article/确定发起" />   </form> </div> </body></html> 

php+ajax发起流程和审核流程(以请假为例) 4

第四步:写发起流程的处理页面fq-cl.php

<?phpsession_start();require "../DB.class.php";$db = new DB();$code = $_POST["lc"];$nr =$_POST["nr"];$uid = $_SESSION["uid"];$time = date("Y-m-d H:i:s",time());$sql = "insert into liuchengpath values ('','{$code}','{$uid}','{$nr}',0,'{$time}',0)";$db->query($sql,0);header("location:liucheng.php");?> 

  点击“确认发起”,数据库中就会添加此条数据

php+ajax发起流程和审核流程(以请假为例) 5

第五步:流程审核页面shenhe.php

用到知识点:子查询:无关子查询(子查询和父查询可以独立执行); 相关子查询(子查询里的条件使用到了父查询的某个东西   )

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title>  <style>  #body{  height: 450px;  width: 800px;  background-color: gainsboro;  margin: 200px auto;  text-align: left;  vertical-align: middle;  line-height: 30px;  padding-left: 30px;   } </style> </head> <body> <div id="body">  <h2>流程审核页面</h2>  <?php  session_start();  $uid = $_SESSION["uid"];  require "../DB.class.php";  $db = new DB();  //先取该用户参与的所有流程  //并且取流程步骤到达该用户或已经被改用户审核通过的记录  $sql="select * from liuchengpath a where code in(select code from liuchengjiedian where uids='{$uid}') and towhere >=(select orders from liuchengjiedian b where b.code = a.code and b.uids = '{$uid}')";  $arr = $db->query($sql);  //var_dump($arr);  echo "<table border='1' width='100%' cellpadding='0' cellspacing='0'>    <tr>    <td>流程代号</td>    <td>发起者</td>    <td>发起内容</td>    <td>发起时间</td>    <td>是否结束</td>    <td>操作</td>    </tr>";  foreach($arr as $v){   //操作最后一列   //设置默认项   $zt = "<a href='http://www.jb51.net/article/tongguo-cl.php?code={$v[0]}'>审核未通过</a>";   $sql = "select orders from liuchengjiedian where code ='{$v[1]}' and uids ='{$uid}'";   $wz = $db->strquery($sql);   if($v[6]>$wz)   {   $zt = "<span style='color:green'>审核已通过</span>";   }   echo "<tr>    <td>{$v[1]}</td>    <td>{$v[2]}</td>    <td>{$v[3]}</td>    <td>{$v[4]}</td>    <td>{$v[5]}</td>    <td>{$zt}</td>   </tr>";     }  echo "</table>";    ?> </div> </body></html> 

  第六步:写tongguo-cl.php页面(重要)

<?php$ids = $_GET["code"];require "../DB.class.php";$db = new DB();//点击审核后,towhere列加1,目的是使流程向下走$sql = "update liuchengpath set towhere = towhere+1 where ids ='{$ids}' ";$db->query($sql,0);//当流程走到最后一个审核的人时,流程要结束//获取该流程最大的orders$sql =" select max(orders) from liuchengjiedian where code = (select code from liuchengpath where ids ='{$ids}')";$maxorders = $db->strquery($sql);//获取该用户处于哪个位置,也就是towhere等于多少$sql ="select towhere from liuchengpath where ids ='{$ids}'";$towhere = $db->strquery($sql);//判断是否已到达最后一个审核的人if($towhere>$maxorders){ $sql = "update liuchengpath set isok=1 where ids='{$ids}'";// var_dump($sql); $db->query($sql,0);}header("location:shenhe.php");?> 

  当写好这一步时,点击“审核未通过”则会变成“审核已通过”;

php+ajax发起流程和审核流程(以请假为例) 6

我们从头来验证一下效果:

首先:发起一个新的请假流程:

php+ajax发起流程和审核流程(以请假为例) 7 php+ajax发起流程和审核流程(以请假为例) 8

其次:zhangsan是第一个要审核人

php+ajax发起流程和审核流程(以请假为例) 9

php+ajax发起流程和审核流程(以请假为例) 10

点击“审核未通过后“,

php+ajax发起流程和审核流程(以请假为例) 11

最后:zhaoliu是最后一个审核人

php+ajax发起流程和审核流程(以请假为例) 12

php+ajax发起流程和审核流程(以请假为例) 13

点击“审核未通过”后,是否结束变为  1 ;操作变为绿色的  “审核已通过”~~~

php+ajax发起流程和审核流程(以请假为例) 14

以上所述是小编给大家介绍的php+ajax发起流程和审核流程(以请假为例),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

标签:

给我留言


Copyright © E网新时代 保留所有权利.   Theme  Ality站点地图
查询次数: 42
粤ICP备14073293号-1

用户登录

分享到: