《PHP實(shí)例:php+ajax發(fā)起流程和審核流程(以請(qǐng)假為例)》要點(diǎn):
本文介紹了PHP實(shí)例:php+ajax發(fā)起流程和審核流程(以請(qǐng)假為例),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
上一篇隨筆中已經(jīng)提到如何新建流程,那么現(xiàn)在我們就來(lái)看一下如何發(fā)起一個(gè)流程和審核流程~~~PHP實(shí)戰(zhàn)
先說(shuō)一下思路:PHP實(shí)戰(zhàn)
(1)登錄用session獲取到用戶的idPHP實(shí)戰(zhàn)
?(2) 用戶發(fā)起一個(gè)流程PHP實(shí)戰(zhàn)
???????? 注意:需要寫(xiě)申請(qǐng)事由PHP實(shí)戰(zhàn)
(3)處于節(jié)點(diǎn)的審核人去依次審核PHP實(shí)戰(zhàn)
????????? 注意:每審核通過(guò)一個(gè),對(duì)應(yīng)towhere字段要加1; 審核到最后時(shí),對(duì)應(yīng)的isok字段要變?yōu)?(此處1表示結(jié)束,0表示未結(jié)束)PHP實(shí)戰(zhàn)
共用到三張表:PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
第一步:先做一個(gè)簡(jiǎn)單的登錄頁(yè)面,用session獲取用戶名:PHP實(shí)戰(zhàn)
denglu.php頁(yè)面PHP實(shí)戰(zhàn)
<!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="登錄" /> </form> </body> </html>
denglu-cl.php頁(yè)面PHP實(shí)戰(zhàn)
<?php session_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 "密碼或登錄名輸入錯(cuò)誤"; } ?>
效果圖:PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
第二步:做個(gè)簡(jiǎn)單的注頁(yè)面:liucheng.phpPHP實(shí)戰(zhàn)
<!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>主頁(yè)面</h2> <div> <a href="faqi.php" rel="external nofollow" >發(fā)起流程</a><br /> <a href='shenhe.php'>審核流程</a> </div> </div> </body> </html>
?效果圖:PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
第三步:發(fā)起流程頁(yè)面faqi.phpPHP實(shí)戰(zhàn)
(1)先將所有流程用下拉列表顯示PHP實(shí)戰(zhàn)
(2)發(fā)起流程事由需要由登錄用戶填寫(xiě)PHP實(shí)戰(zhàn)
<!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>發(fā)起流程頁(yè)面</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='{$v[0]}'>{$v[1]}</option>"; } ?> </select><br /> 發(fā)起流程事由: <textarea class="nr"> </textarea><br /> <input type="button" value="確定發(fā)起" /> </form> </div> </body> </html>
PHP實(shí)戰(zhàn)
第四步:寫(xiě)發(fā)起流程的處理頁(yè)面fq-cl.phpPHP實(shí)戰(zhàn)
<?php session_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"); ?>
點(diǎn)擊“確認(rèn)發(fā)起”,數(shù)據(jù)庫(kù)中就會(huì)添加此條數(shù)據(jù)PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
第五步:流程審核頁(yè)面shenhe.phpPHP實(shí)戰(zhàn)
用到知識(shí)點(diǎn):子查詢:無(wú)關(guān)子查詢(子查詢和父查詢可以獨(dú)立執(zhí)行); 相關(guān)子查詢(子查詢里的條件使用到了父查詢的某個(gè)東西?? )PHP實(shí)戰(zhàn)
<!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>流程審核頁(yè)面</h2> <?php session_start(); $uid = $_SESSION["uid"]; require "../DB.class.php"; $db = new DB(); //先取該用戶參與的所有流程 //并且取流程步驟到達(dá)該用戶或已經(jīng)被改用戶審核通過(guò)的記錄 $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>流程代號(hào)</td> <td>發(fā)起者</td> <td>發(fā)起內(nèi)容</td> <td>發(fā)起時(shí)間</td> <td>是否結(jié)束</td> <td>操作</td> </tr>"; foreach($arr as $v){ //操作最后一列 //設(shè)置默認(rèn)項(xiàng) $zt = "<a href='tongguo-cl.php?code={$v[0]}'>審核未通過(guò)</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'>審核已通過(guò)</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>
第六步:寫(xiě)tongguo-cl.php頁(yè)面(重要)PHP實(shí)戰(zhàn)
<?php $ids = $_GET["code"]; require "../DB.class.php"; $db = new DB(); //點(diǎn)擊審核后,towhere列加1,目的是使流程向下走 $sql = "update liuchengpath set towhere = towhere+1 where ids ='{$ids}' "; $db->query($sql,0); //當(dāng)流程走到最后一個(gè)審核的人時(shí),流程要結(jié)束 //獲取該流程最大的orders $sql =" select max(orders) from liuchengjiedian where code = (select code from liuchengpath where ids ='{$ids}')"; $maxorders = $db->strquery($sql); //獲取該用戶處于哪個(gè)位置,也就是towhere等于多少 $sql ="select towhere from liuchengpath where ids ='{$ids}'"; $towhere = $db->strquery($sql); //判斷是否已到達(dá)最后一個(gè)審核的人 if($towhere>$maxorders) { $sql = "update liuchengpath set isok=1 where ids='{$ids}'"; // var_dump($sql); $db->query($sql,0); } header("location:shenhe.php"); ?>
當(dāng)寫(xiě)好這一步時(shí),點(diǎn)擊“審核未通過(guò)”則會(huì)變成“審核已通過(guò)”;PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
我們從頭來(lái)驗(yàn)證一下效果:PHP實(shí)戰(zhàn)
首先:發(fā)起一個(gè)新的請(qǐng)假流程:PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
其次:zhangsan是第一個(gè)要審核人PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
點(diǎn)擊“審核未通過(guò)后“,PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
最后:zhaoliu是最后一個(gè)審核人PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
點(diǎn)擊“審核未通過(guò)”后,是否結(jié)束變?yōu)? 1 ;操作變?yōu)榫G色的? “審核已通過(guò)”~~~PHP實(shí)戰(zhàn)
PHP實(shí)戰(zhàn)
以上所述是小編給大家介紹的php+ajax發(fā)起流程和審核流程(以請(qǐng)假為例),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!PHP實(shí)戰(zhàn)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/642.html