流程管理的用法是什麼樣的?
一、要有資料庫的內容的
肯定會有表的,首先就是使用者表了,然後就是流程表,使用者編寫的流程表,還有審核人員的表
二、資料庫結束後,就是建立流程的頁面,這頁面會有審核人員,還有流程的名字還有提交的按鈕
(1)添加節點的人員,這個是要遍曆資料庫來查看都什麼管理員
<p> 請選擇節點人員: <?phpsession_start(); //開啟sessioninclude("DBDA.class.php"); //調用封裝好的資料庫$db = new DBDA(); //造新對象$suser = "select * from users"; //查詢使用者表中的所有值$auser = $db->Query($suser); //執行查詢語句foreach($auser as $v){echo "<input class='ck' type='radio' value='{$v[0]}' name='ck' />{$v[2]} "; //輸出選項按鈕,數組中的索引2,也就是使用者名稱,但是它的值是代號}?></p>
查看一下顯示結果:
(2)既然後選擇審核人員,那麼就是有添加的按鈕
<input type="button" value="添加節點" id="insert" /> //起個名字,便於給它添加單擊按鈕
(3)對這個按鈕添加點擊事件
$("#insert").click(function(){var ck = $(".ck"); //找到項var uid = "";for(var i=0;i<ck.length;i++){if(ck.eq(i).prop("checked")) //選項按鈕的選中狀態{ uid = ck.eq(i).val(); //選項按鈕的值}}$.ajax({url:"addjd.php", //添加節點的處理頁面data:{uid:uid}, //將選項按鈕的值傳過去type:"POST", //傳值方式dataType:"TEXT", //值的返回狀態success: function(data){window.location.href="liucheng_gaunli.php"; //執行處理頁面成功後會重新整理頁面 }});})
(4)添加節點的處理頁面
<?phpsession_start(); //開啟session$uid = $_POST["uid"]; //接收傳過來的值if(empty($_SESSION["jiedian"])){$attr = array($uid); //定義一個數組放使用者$_SESSION["jiedian"] = $attr; //將第一個使用者放入數組中}else{$attr = $_SESSION["jiedian"]; //數組中有值$attr[] = $uid; //放入數組中值$_SESSION["jiedian"] = $attr; //將值再交給session}
(5)在首頁面中顯示添加的這些節點
<?phpif(empty($_SESSION["jiedian"])) //如果沒有節點值{echo "<p>還沒有添加節點</p>"; //輸出這句話}else{$attr = $_SESSION["jiedian"]; //數組中有了值foreach($attr as $k=>$v) //迴圈遍曆,$v只是名字,還有有所以所以用$k{$sname = "select name from users where uid='{$v}'"; //編寫查詢語句$name = $db->StrQuery($sname); //執行查詢語句 //輸出索引號還有名字,加一個刪除按鈕吧,可以吧這個節點刪除echo "<p>{$k}--{$name}--<input type='button' value='刪除' sy='{$k}' class='sc' /></p>"; }}?>
添加節點看下效果:
1.還沒有添加節點的:
2.隨便添加幾個審核人員:人員已經顯示出來了
(6)這樣之後就是對其的刪除按鈕添加單擊事件了
$(".sc").click(function(){var sy = $(this).attr("sy"); //點擊這個按鈕,選中這個的索引號$.ajax({url:"shanchu.php", //刪除按鈕的處理頁面data:{sy:sy}, //把索引號傳到處理頁面type:"POST", //傳值方式dataType:"TEXT",success:function(data){window.location.href="liucheng_gaunli.php"; //執行處理頁面成功後會重新整理頁面}});})
(7)刪除按鈕的處理頁面
<?phpsession_start(); //開啟session$attr = $_SESSION["jiedian"]; //節點的數組$sy = $_POST["sy"]; //接收穿過來的索引號unset($attr[$sy]); //刪除資料$attr = array_values($attr); //重新索引$_SESSION["jiedian"] = $attr;
查看下刪除節點的效果
1.沒有刪除之前
2.刪除一個節點之後
(8)節點的操作已經結束之後,那麼就是流程的名稱了,這個簡單,寫名稱的文字框:重要的就是對這個流程的儲存了,那麼也要有儲存按鈕
<p>請輸入資料流程名稱:<input type="text" id="name" /></p> //起個名字,下面儲存的寫個單擊事件有用
<p><input type="button" value="儲存" id="save" /></p> //儲存按鈕要有單擊事件的
這樣整體的就出來了:
(9)最後就是儲存按鈕的單擊事件了
$("#save").click(function(){ var name = $("#name").val(); //取到文字框的值 $.ajax({url:"baocun.php", //儲存的處理頁面data:{name:name}, //將文字框的值傳到處理頁面type:"POST", //傳值方式dataType:"TEXT",success: function(data){alert("添加成功!"); //執行處理頁面成功後會彈出提示框 } });})
(10)儲存流程的處理頁面
<?phpsession_start(); //開啟sessioninclude("DBDA.class.php"); //調用封裝的資料庫類$db = new DBDA(); //造新對象$name = $_POST["name"]; //接收傳過來的值$code = time(); //代號是時間$sflow = "insert into flow values('{$code}','{$name}')"; //修改流程表中的值:代號和名字$db->Query($sflow,0); //執行語句$attr = $_SESSION["jiedian"]; foreach($attr as $k=>$v){$spath = "insert into flowpath values('','{$code}','{$v}','{$k}')"; //修改流程節點的數值$db->Query($spath,0); //執行語句}
看下儲存效果:
看下資料庫,內容也儲存資料庫了
三、建立流程頁面已經結束了,那麼就是使用者登入頁面了,這個頁面寫了很多遍了,不多說了,直接上代碼
(1)登入的基本顯示:都是些基本語句
<h1>使用者登入</h1><p>帳號:<input type="text" id="uid" /></p> <p>密碼:<input type="password" id="pwd" /></p><p><input type="button" value="登入" id="btn" /></p>
(2)這裡登入,我們也用ajax進行登入吧
$("#btn").click(function(){ //對登入按鈕添加單擊事件 var uid=$("#uid").val(); //擷取使用者的值 var pwd=$("#pwd").val(); //擷取密碼的值 $.ajax({ url:"logincl.php", //編寫登入的處理頁面 data:{uid:uid,pwd:pwd}, //將使用者和密碼傳到處理頁面 type:"POST", dataType:"text", success: function(data) { if(data.trim()=="OK") { window.location.href="main.php"; //處理頁面執行成功後,跳轉到首頁面 } else { alert("使用者名稱密碼輸入錯誤"); //否則就提示錯誤 } } }) })
(3)看下處理頁面的編寫
<?phpsession_start(); //開啟sessioninclude("DBDA.class.php"); //調用封裝的類$db = new DBDA(); //造新對象//傳過來的值$uid = $_POST["uid"];$pwd = $_POST["pwd"];<br>//查詢語句$sql = " select pwd from users where uid='{$uid}' and pwd='{$pwd}' ";//執行語句$attr = $db->Query($sql);if(!empty($pwd) && !empty($attr) && $attr[0][0]==$pwd){ $_SESSION["uid"] = $uid; //session接收使用者值 echo "OK"; }else{ echo "ON"; }?>
最後,我們看下最後結果,登入成功就會進入首頁,登入失敗會提示錯誤
四、節點使用者的審核處理介面了(對於這個審核介面有很多需要注意的地方)
(1)登入成功介面的顯示部分:並不是每個人登入成功介面是一樣的,還有就是如果這個人員不參與審核的話,也應該是沒有資訊的才對
想要顯示的表頭,也就是一行:我們可以用表來顯示
<tr> <td>流程代號</td> <td>發起者</td> <td>發起內容</td> <td>是否結束</td> <td>發起時間</td> <td>操作</td></tr>
先看下錶頭的顯示:
(2)開啟一下session這樣登入者的資訊就會儲存下來
session_start();include("DBDA.class.php"); //會用到資料庫,所以可以調用一下資料庫的類$db = new DBDA(); //造新對象$uid = "";if(empty($_SESSION["uid"])) //判斷儲存的session值是不是為空白{ header("location:login.php"); //為空白就返回登入頁面}else{ $uid = $_SESSION["uid"]; //不為空白就輸儲存一下使用者}
(3)接下來就是使用者這是不是和流程有關係?流程走到哪了(分情況)?還有就是有沒有通過
//查詢登入者參與的所有流程$su_flow = "select * from userflow where code in(select code from flowpath where uids='{$uid}')";$au_flow = $db->Query($su_flow); //執行查詢語句foreach($au_flow as $vu_flow){ $towhere = $vu_flow[6]; //流程走到哪裡了 //找到登入者在該流程中的位置 $s_weizhi = "select orders from flowpath where code='{$vu_flow[1]}' and uids='{$uid}'"; $wezhi = $db->StrQuery($s_weizhi); //該人員在流程中的位置 if($towhere>=$wezhi) { $caozuo = ""; if($towhere==$wezhi) { //流程正好走到登入者位置 $caozuo="<a href='tongguo.php?ids={$vu_flow[0]}'>通過</a>"; //get方式傳過處理頁面 } else { //流程走過登入者 $caozuo = "<span style='background-color:green; color:white'>已通過</span>"; } echo "<tr><td>{$vu_flow[1]}</td><td>{$vu_flow[2]}</td><td>{$vu_flow[3]}</td><td>{$vu_flow[4]}</td><td>{$vu_flow[5]}</td><td>{$caozuo}</td></tr>"; } else { //流程未走到登入者 }}
(4)通過的處理頁面
<?phpinclude("DBDA.class.php"); //調用封裝好的資料庫類$db = new DBDA(); //造新對象$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)這個及時發起流程的頁面了
這個挺簡單的了,後面再更新吧~~~
至此,這個流程管理就結束了~~