1. 程式人生 > >php流程控制(新建流程)

php流程控制(新建流程)

數組元素 ray cat 通過 觸發事件 else text [] code

流程控制,又是一個廣泛應用於辦公自動化等內部自定義流程及審核的功能。比如請假流程啊,申請辦公用品經費,報銷申請啊,等等,需要層層審批通過才能完成的(按規章辦事,最好別越級,你說是吧)

不習慣一篇博客太長,看不過來,這篇我們先實現流程的新建

先看看效果圖

技術分享

1.有個下拉選擇用戶,可以依次添加到流程的節點位置,

2.下方顯示流程的每個節點

3.填寫流程名稱,點擊保存即可完成流程的新建

數據庫中需要三張表,1.用戶表2.流程表 3.流程節點表

技術分享技術分享技術分享

選擇用戶和添加節點按鈕

<div>
請選擇用戶:
        <select id="sel">    
        <?
php session_start(); require "../DataBase.class.php"; $db=new DataBase(); $sql="select * from users"; $arr=$db->Query($sql); foreach($arr as $v) { echo "<option>{$v[2]}</option>"; }
?> </select> <input type="button" id="add" value="添加至流程節點"/> </div><br /> <div>

為按鈕添加事件

 1 $("#add").click(function (){
 2     var uid=$("#sel").val();
 3     $.ajax({
 4             url:"addjd.php",
 5             data:{uid:uid},
 6             type:"POST",
7 dataType:"TEXT", 8 success: function(data){ 9 10 11 window.location.href="newbuild.php"; 12 } 13 14 15 16 }) 17 });

處理頁面addjd.php

 1 <?php
 2 session_start();
 3 $uid=$_POST["uid"];
 4 if(empty($_SESSION["uid"]))
 5 {
 6     $arr=array($uid);
 7     $_SESSION["uid"]=$arr;
 8     }
 9 else{
10     
11     $arr=$_SESSION["uid"];
12     $arr[]=$uid;
13     $_SESSION["uid"]=$arr;
14     
15     }
16 
17 ?>

技術分享

加載節點信息

<div>
<?php
if(empty($_SESSION["uid"]))
{
    echo "你還沒有添加任何節點";
    }
else
{
    $arr2=$_SESSION["uid"];
    foreach($arr2 as $k=>$v)
    {
        $sql2="select name from users where uid=‘{$v}‘";
        $name=$db->Query($sql2);
        echo "<div>{$k}----{$v}<input type=‘button‘ value=‘刪除‘ sy=‘{$k}‘ class=‘yichu‘/></div>";
        
        }
 
    }

?>
</div>

技術分享

刪除的觸發事件

 1 $(".yichu").click(function (){
 2             var sy=$(this).attr("sy");
 3             $.ajax({
 4                     url:"removejd.php",
 5                     data:{sy:sy},
 6                     type:"POST",
 7                     dataType:"TEXT",
 8                     success: function(data){
 9                         window.location.href="newbuild.php";
10                         
11                         
12                         }
13                     
14                 
15                 
16                 })
17     
18     
19     
20     
21     });

移除的處理頁面

<?php
session_start();
$sy=$_POST["sy"];
$arr=$_SESSION["uid"];
unset($arr[$sy]);        //移除數組元素
$arr=array_values($arr); //重建索引
$_SESSION["uid"]=$arr;


?>

保存的頁面和點擊事件

 1 <div>
 2 請輸入新建流程的名稱:<input type="text" id="shuru"  /><br />
 3 
 4 <input type="button" value="保存" id="save" />
 5 
 6 </div>
 7 <script>
 8 $("#save").click(function (){
 9         var mingcheng=$("#shuru").val();
10         $.ajax({
11                 url:"save.php",
12                 data:{mingcheng:mingcheng},
13                 type:"POST",
14                 dataType:"TEXT",
15                 success: function(data)
16                 {
17                     alert("保存成功")
18                     }
19             
20             
21             
22             })
23     
24     
25     
26     
27     
28     })
29 
30 
31 
32 </script>

保存的處理頁面

 1 <?php
 2 session_start();
 3 $name=$_POST["mingcheng"];
 4 $code=time();
 5 
 6 require "../DataBase.class.php";
 7 $db=new DataBase();
 8 $sql="insert into liucheng values(‘{$code}‘,‘{$name}‘)";
 9 $db->Query($sql,0);
10 
11 
12 $arr=$_SESSION["uid"];
13 foreach($arr as $k=>$v)
14 {
15     $sql2="insert into flowpath values(‘‘,‘{$code}‘,‘{$v}‘,‘{$k}‘)";
16     $db->Query($sql2,0);
17     }
18 
19 ?>

php流程控制(新建流程)