PHP——小尾巴之流程处理

说明:首先新建一个流程,把处理流程的节点人员添加进去,最后点确定提交至数据库

        处理流程:不同用户登录进去处理自己的节点部分对其审核通过

新建两个流程:

第一个为借款流程:处理顺序为:李四发起=>张三=>再见孙悟空

第二个为请假流程:处理顺序为:李四发起=>张三

效果为

lisi先进行处理

zhangsan处理完之后

zaijian处理完之后

数据库:

test.php

<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<h1>新建流程</h1>
<div>输入流程名:
    <input type="text" id="liucheng"/>
</div><br />

<div>请选择节点人员:</div><br />
<div>
    <?php
        include("../mydbda.php");
        $db = new mydbda();
        $sqlj = "select * from Users";
        $strj = $db->Select($sqlj,"CX","mydb");
        $hangj = explode("|",$strj);
        for($i=0;$i<count($hangj);$i++)
        {
            list($uid,$pwd,$name) = explode("^",$hangj[$i]);
            echo "<input type='radio' value='{$uid}' class='ry' name='ry'/>{$name}&nbsp;";
        }
    ?>
</div><br />
<input type="button" value="添加节点" id="sure" />
<br /><br />
<div id="biao">
    <?php
        if(isset($_SESSION["liucheng"]))
        {
            $attr = $_SESSION["liucheng"];
            
            for($i=0;$i<count($attr);$i++)
            {
                $sqlu = "select Name from Users where Uid = '".$attr[$i]."'";
                $stru = $db->Select($sqlu,"CX","mydb");
                echo "<div class='jd' bs='".$attr[$i]."'>{$i}.{$stru}--<input type='button' class='delete' bs='".$i."' value='删除'/></div>";
            }
        }
        else
        {
            echo "当前流程节点为空!";
        }
    ?>
</div><br />
<input type="button" value="确定" id="add" />
<br />

</body><br />
<script type="text/javascript">
$(document).ready(function(e) {
    
    //添加节点
    $("#sure").click(function(){
            var user = $(".ry");
            for(var i=0; i<user.length;i++)
            {
                if(user.eq(i)[0].checked == true)
                {
                    var uid = user.eq(i).val();
                    
                    $.ajax({
                        
                            url:"chulilc.php",
                            data:{uid:uid},
                            type:"POST",
                            dataType:"TEXT",
                            success: function(data){
                                    window.location = "test.php";//让页面刷新一下是为了调上面的php代码
                                }
                        
                        });
                }
            }
        
        })
        
    //删除节点
    $(".delete").click(function(){
        
        var ids = $(this).attr("bs");
        
        $.ajax({
                        
                url:"chulisc.php",
                data:{ids:ids},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                        window.location = "test.php";
                    }
            
            });
        
        })
        
    //添加流程
    $("#add").click(function(){
            
            var name = $("#liucheng").val();
            
            $.ajax({
                
                url:"add.php",
                data:{name:name},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                        if(data=="OK")
                        {
                            alert("添加成功!");
                        }
                        else
                        {
                            alert("添加失败!");
                        }
                    
                    }
                
                });
        
        })
    
});
</script>
</html>

chulilc.php

<?php
    session_start();
    
    $uid = $_POST["uid"];
    
    //isset判断有没有被附上值
    if(isset($_SESSION["liucheng"]))
    {
        //当第二次运行之后
        $shuzu = $_SESSION["liucheng"];
        array_push($shuzu,$uid);
        $_SESSION["liucheng"] = $shuzu;
    }
    else
    {
        //没有值的时候(第一次运行的时候)  
        //新建数组
        $shuzu = array();
        
        //往数组末尾添加数据
        array_push($shuzu,$uid);
        
        //定义session liucheng
        $_SESSION["liucheng"] = $shuzu;
    }

    
?>

chulisc.php

<?php
    session_start();
    
    $ids = $_POST["ids"];

    $shuzu = $_SESSION["liucheng"];
    unset($shuzu[$ids]); //删除元素
    $shuzu = array_values($shuzu); //重新索引
    $_SESSION["liucheng"] = $shuzu;

?>

add.php

<?php
    session_start();
    
    include("../mydbda.php");
    
    $db = new mydbda();
    
    $name = $_POST["name"];
    
    $code = date("YmdHisms",time());
    
    $sqll = "insert into LiuCheng values('{$code}','{$name}')";
    $db->Select($sqll,"QT","mydb");
    
    $attr = $_SESSION["liucheng"];
    
    for($i=0;$i<count($attr);$i++)
    {
        $sqlj = "insert into FlowPath values('','{$code}','{$attr[$i]}','{$i}')";
        $db->Select($sqlj,"QT","mydb");
    }
    echo "OK";

denglu.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<h1>登录</h1>
<form action="dlchuli.php" method="post">
<div>用户名:<input type="text" name="uid"/></div>
<div>密码:<input type="text" name="pwd"/></div>
<input type="submit" value="登录" />
</form>
</body>
</html>

dlchuli.php

<?php
    session_start();
    include("../mydbda.php");
    $db = new mydbda();
    
    $uid = $_POST["uid"];
    $pwd = $_POST["pwd"];
    
    $sql = "select count(*) from Users where Uid = '{$uid}' and Pwd = '{$pwd}'";
    $str = $db->Select($sql,"CX","mydb");
    
    if($str == "1")
    {
        $_SESSION["uid"] = $uid;
        header("Location:faqi.php");
    }
    else
    {
        header("Location:denglu.php");
    }
    

faqi.php

<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<h1>发起流程</h1>
<div>请选择流程:
<select id="lc">
<?php

    include("../mydbda.php");
    $db = new mydbda();
    
    $sql = "select * from LiuCheng";
    $str = $db->Select($sql,"CX","mydb");
    $hang = explode("|",$str);
    for($i=0;$i<count($hang);$i++)
    {
        list($code,$name) = explode("^",$hang[$i]);
        
        echo "<option value='{$code}'>{$name}</option>";
    }
    
?>
</select>
</div>
<br />
<div>
    <div>请输入流程内容:</div><br />
    <div>
        <textarea id="nr" style="400px; height:250px"></textarea>
    </div>
</div>
<br />
<input type="button"  value="确定" id="btn"/>
<a href="chuliliucheng.php">处理</a>
</body>
<script type="text/javascript">
$(document).ready(function(e) {
    $("#btn").click(function(){
        
        var code = $("#lc").val();
        var nr = $("#nr").val();
        
        $.ajax({
            
                url:"faqichuli.php",
                data:{code:code,nr:nr},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    
                        if(data == "OK")
                        {
                            alert("发起成功!");
                        }
                        else
                        {
                            alert("发起失败!");
                        }
                    
                    }
            
            });
        
        })
});
</script>
</html>

faqichuli.php

<?php
    session_start();
    
    include("../mydbda.php");
    $db = new mydbda();
    
    $code = $_POST["code"];
    $nr = $_POST["nr"];
    
    $uid = $_SESSION["uid"];
    $riqi = date("Y-m-d H:i:s",time());
    
    $sql = "insert into UserFlow values('','{$code}','{$uid}','{$nr}',false,'{$riqi}',0)";
    $str = $db->Select($sql,"QT","mydb");
    echo $str;

 chuliliucheng.php

<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<h1>处理流程</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>流程名称</td>
        <td>发起者</td>
        <td>内容</td>
        <td>是否结束</td>
        <td>发起日期</td>
        <td>操作</td>
    </tr>
    
    <?php
        $uid = $_SESSION["uid"];
        
        include("../mydbda.php");
        $db = new mydbda();
        
        $sql = "select * from UserFlow";
        
        $str = $db->Select($sql,"CX","mydb");
        
        $hang = explode("|",$str);
        for($i=0;$i<count($hang);$i++)
        {
            list($ids,$code,$uids,$nr,$isok,$riqi,$towhere) = explode("^",$hang[$i]);
            
            $sqlj = "select * from FlowPath where Code = '{$code}'";
            $strj = $db->Select($sqlj,"CX","mydb");
            $hangj = explode("|",$strj);
            $bs = false;
            $bscl = false;
            for($j=0;$j<count($hangj);$j++)
            {
                list($idsj,$codej,$uidj,$orderj) = explode("^",$hangj[$j]);
                
                //判断登陆用户名是否等于节点,即要不要处理这个节点;并判断节点是否走到他
                if(($uidj == $uid) and ($orderj <= $towhere))
                {
                    
                    $bs= true;
                }
                if(($uidj == $uid) and ($orderj == $towhere))
                {
                    
                    $bscl= true;
                }
            }
            
            //处理流程名
            $sqllc = "select Name from LiuCheng where Code = '{$code}'";
            $lcname = $db->Select($sqllc,"CX","mydb");
            //处理发起者名
            $sqlfq = "select Name from Users where Uid = '{$uids}'";
            $fqname = $db->Select($sqlfq,"CX","mydb");
            //处理是否结束
            $jieshu = $isok?"<span style='background-color:green'>已结束</span>":"<span style='background-color:red'>进行中</span>";
            //处理操作
            $caozuo = $bscl?"<a href='tongguo.php?code=".$ids."'>通过</a>":"<span style='background-color:gray'>已通过</span>";
            if($bs)
            {
                echo "<tr><td>{$lcname}</td><td>{$fqname}</td><td>{$nr}</td><td>{$jieshu}</td><td>{$riqi}</td><td>{$caozuo}</td></tr>";
            }
        }
    ?>
    
</table>
</body>
</html>

tongguo.php

<?php
include("../mydbda.php");
$db = new mydbda();

$code = $_GET["code"];
//通过,流程指向下一个人
$sql = "update UserFlow set ToWhere = ToWhere+1 where Ids = '{$code}' ";

$db->Select($sql,"QT","mydb");
//查询流程走到哪了
$sqlt = "select Code,ToWhere from UserFlow where Ids = '{$code}'";
$strtw = $db->Select($sqlt,"CX","mydb");
list($lccode,$tw) = explode("^",$strtw);
//查询该流程下节点数量
$sqlf = "select count(*) from FlowPath where Code = '{$lccode}'";
$zs = $db->Select($sqlf,"CX","mydb");
//判断是否走完流程
if($tw >= $zs)
{
    $sqlx = "update UserFlow set IsOk = true where Ids = '{$code}' ";

    $db->Select($sqlx,"QT","mydb");
}


header("Location:chuliliucheng.php");
原文地址:https://www.cnblogs.com/Chenshuai7/p/5292244.html