php……流程

流程:由两个及以上的业务步骤,完成一个完整的业务行为的过程,可称之为流程;注意是两个及以上的业务步骤。事物进行过程中的次序或顺序的布置和安排。

创建页面:

  • 登录页面(login.php):
<h1>登录</h1>
<form action="loginchuli.php" method="post">
    <div>用户名:<input type="text" name="uid" /></div><br />

    <div>密码:&nbsp;<input type="password" name="pwd" /></div><br />

    <input type="submit" value="登录" />
</form>
View Code

  • 登录处理页面(loginchuli.php):
<?php
session_start();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

include("../DB.class.php");
$db = new DB();

$sql = "select count(*) from Users where Uid='{$uid}' and Pwd = '{$pwd}'";

$z = $db->StrQuery($sql);

if($z == 1)
{
    $_SESSION["uid"] = $uid;
    header("location:main.php");
}
else
{
    header("location:login.php");
}
View Code
  • 主页面(main.php):
<style type="text/css">
*{ margin:0 auto; padding:0}
#menu{ width:600px; height:50px; line-height:50px; text-align:center;  color:#FFF;}
.z{ height:50px; line-height:50px; text-align:center; float:left; margin-right:50px;}
.t{height:50px; line-height:50px; text-align:center; float:right;}
a:link,a:visited{ color:#03C;}
a:hover{ background-color:#930; color:#FFF;}
a:active{ background-color:#900; }

</style>
</head>

<body>
<?php
session_start();
if(empty($_SESSION["uid"]))
{
    header("location:login.php");    
}
?><br />
<center><h1>主页面</h1></center><br />
<div id="menu">
<div class="z"><a href="xinjian.php">新建流程</a></div>
<div class="z"><a href="faqi.php">发起流程</a></div>
<div class="z"><a href="shenhe.php">审核流程</a></div>
<div class="t"><a href="tuichu.php">退出系统</a></div>

</div>
View Code

  • 新建流程页面(xinjian.php):
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<?php
session_start();
include("../DB.class.php");
$db = new DB();
$attr = array();
if(!empty($_SESSION["jiedian"]))
{
    $attr = $_SESSION["jiedian"];    
}
?>
<h1>新建流程</h1>
<div>
    请选择节点人员:<br /><br />
    <?php
    $sry = "select * from Users";
    $ary = $db->Query($sry);
    foreach($ary as $v)
    {
        echo "<input type='radio' class='ry' name='ry' value='{$v[0]}'/>{$v[2]}";    
    }    
    ?>
</div>
<br />
<div>
<input type="button" value="添加节点" id="tjjd" />
</div>
<br />
<div>
<?php
//循环遍历数组key与value值
foreach($attr as $k=>$v)
{
    //根据用户名找到Name
    $sname = "select Name from Users where Uid = '{$v}'";
    $name = $db->StrQuery($sname);
    echo "<div>{$k}--{$name}--<input type='button' value='删除' class='sc' bs='{$k}' /></div>";//将数组索引存入自定义属性bs中
}
?>
</div>
<br />
<div>
    请输入流程名称:
    <input type="text" id="mc" />
</div><br />
<div>
<input type="button" value="添加流程" id="tjlc" />
</div><br />
<a href="main.php">返回主页面</a>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    //页面加载完成之后,设置显示默认选中第一项
    $(".ry").eq(0).prop("checked",true);
    //添加节点按钮点击事件
    $("#tjjd").click(function(){
        //取选中的用户名
        var ry = $(".ry");
        var uid ="";
        for(var i=0;i<ry.length;i++)
        {
            if(ry.eq(i).prop("checked"))
            {
                //如果选中,将其value值存入变量uid中
                uid = ry.eq(i).val();    
            }    
        }
        
        $.ajax({
            
            url:"tjjd.php",
            data:{uid:uid},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                
                window.location = "xinjian.php";
                }            
            });
        
        })
    
    //删除节点按钮点击事件
    $(".sc").click(function(){
        //获取属性bs的值,即数组$attr的索引值
        var id = $(this).attr("bs");
        
        $.ajax({
            
            url:"scjd.php",
            data:{id:id},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                
                window.location = "xinjian.php";
                }            
            });        
        })
        
        //添加按钮点击事件
        $("#tjlc").click(function(){
            //取出输入的流程名称
            var name = $("#mc").val();
            $.ajax({
            
            url:"tjlc.php",
            data:{name:name},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                //alert(data);
                if(data.trim()=="OK")
                {
                    window.location="xinjian.php";
                }
                else
                {
                    alert("添加失败!");    
                }
                }            
            });        
            
            })        
    
});

</script>
View Code

  • 添加节点页面(tjjd.php):
<?php
session_start();

$uid = $_POST["uid"];
//判断是否是第一次点击
if(empty($_SESSION["jiedian"]))
{
    //第一次点击,新建一个数组,存入session
    $attr = array($uid);
    $_SESSION["jiedian"] = $attr;    
}
else
{
    //第n次点击,n!=1,直接取出数组追加一个传过来的值,存入session
    $attr = $_SESSION["jiedian"];
    array_push($attr,$uid);
    $_SESSION["jiedian"]= $attr;
}
View Code

  • 删除节点页面(scjd.php):
<?php
session_start();

$id = $_POST["id"];
$attr = $_SESSION["jiedian"];
//删除数组中的某一个元素
unset($attr[$id]);
//重新索引数组
$attr = array_values($attr);
//将新数组存入session
$_SESSION["jiedian"] = $attr;
View Code

  • 添加流程页面(tjlc.php):
<?php
session_start();
include("../DB.class.php");
$db = new DB();
$attr = array();
if(!empty($_SESSION["jiedian"]))
{
    $attr = $_SESSION["jiedian"];    
}
$name = $_POST["name"];
//向流程表中添加数据
$code = date("YmdHisms");
$slc = "insert into LiuCheng values('{$code}','{$name}')";
//echo $slc;
//判断是否执行成功的变量
$isok = true;
if($db->Query($slc,1))
{
    foreach($attr as $k=>$v)
    {
        $sfl = "insert into FlowPath values('','{$code}','{$v}',{$k})";    
        $isok = $isok && ($db->Query($sfl,1));
    }    
}
if($isok)
{
    unset($_SESSION["jiedian"]);
    echo "OK";    
}
else
{
    echo "NO";    
}
View Code
  • 发起流程页面(faqi.php):
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<?php
session_start();
if(empty($_SESSION["uid"]))
{
    header("location:login.php");    
}
include("../DB.class.php");
$db = new DB();
?>
<h1>发起流程</h1>
<div>
    请选择流程:
    <select id="lc">
    <?php
    $sql = "select * from LiuCheng";
    $attr = $db->Query($sql);
    foreach($attr as $v)
    {
        echo "<option value='{$v[0]}'>{$v[1]}</option>";    
    }
    ?>    
    </select>
</div><br />
<div>
    请选择内容:
    <textarea class="nr"></textarea>
</div>
<br />
<div>
    <input type="button" value="发起流程" id="faqi" />
</div><br />
<a href="main.php">返回主页面</a>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    $("#faqi").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.trim()=="OK")
                {
                    alert("发起成功!");    
                }
                else
                {
                    alert("发起失败!");    
                }
                }            
            });        
        })
    
    
    
});


</script>
View Code

  • 发起流程处理页面(faqichuli.php):
<?php
session_start();
include("../DB.class.php");
$db = new DB();
$code = $_POST["code"];
$nr = $_POST["nr"];
$uid = $_SESSION["uid"];
$riqi = date("Y-m-d H:i:s");
$isok = true?"<span style='color:green'>已完成</span>":"<span style='color:red'>未完成</span>";

$sql = "insert into UserFlow values('','{$code}','{$uid}','{$nr}',false,'{$riqi}',0)";

if($db->Query($sql,1))
{
    echo "OK";    
}
else
{
    echo "NO";
}
View Code
  • 审核流程页面(shenhe.php):
<h1>审核流程</h1>
<?php
session_start();
include("../DB.class.php");
$db = new DB();
if(empty($_SESSION["uid"]))
{
    header("location:login.php");    
}
$uid = $_SESSION["uid"];
?>
<table width="1000" border="1" cellpadding="0" cellspacing="0">
<tr bgcolor="#FFCC66" style="color:#930">
<td>流程名称</td>
<td>发起者</td>
<td>流程内容</td>
<td>是否结束</td>
<td>发起时间</td>
<td>操作</td>
</tr>

<?php

$suf = "select * from UserFlow order by RiQi desc";
$auf = $db->Query($suf);
foreach($auf as $v)
{
    //根据流程代号到flowpath表查询登陆者在流程中的次序
    $sfp = "select Code,Orders from FlowPath where Code = '{$v[1]}' and Uids = '{$uid}'";
    $cx = $db->Query($sfp);        
    if($cx)
    {
        $ucode = $cx[0][0];  //流程代号
        $ucx = $cx[0][1];    //次序
        //判断该流程是否走到了该用户
        if($v[1]==$ucode && ($v[6]>=$ucx))
        {
            $lname = Lname($db,$v[1]);
            $fname = Fname($db,$v[2]);
            //处理是否结束
            $isok = $v[4]?"<span style='background-color:red'>已结束</span>":"<span style='background-color:green'>处理中</span>";
            //处理操作
            $chuli = "";
            if($v[6]==$ucx)
            {
                $chuli = "<a href='shenhechuli.php?id={$v[0]}'>审核</a>";    
            }
            else
            {
                $chuli = "<span style='background-color:green'>已通过</span>";    
            }
            echo "<tr>
            <td>{$lname}</td>
            <td>{$fname}</td>
            <td>{$v[3]}</td>
            <td>{$isok}</td>
            <td>{$v[5]}</td>
            <td>{$chuli}</td>
            </tr>";    
        }    
    }    
}

//处理流程名称
function Lname($db,$code)
{
    $sql = "select Name from LiuCheng where Code = '{$code}'";    
    return $db->StrQuery($sql);
}
//处理发起者名
function Fname($db,$uid)
{
    $sql = "select Name from Users where Uid = '{$uid}'";    
    return $db->StrQuery($sql);
}
?>
</table><br />

<a href="main.php">返回主页面</a>&nbsp;<a href="tuichu.php">退出系统</a>
</body>
View Code

  • 审核流程处理页面(shenhechuli.php):
<?php
include("../DB.class.php");
$db = new DB();
$id = $_GET["id"];

$sql = "update UserFlow set ToWhere = ToWhere+1 where Ids = '{$id}'";

if($db->Query($sql,1))
{
    //查询流程走到哪了
    $stw = "select Code,ToWhere from UserFlow where Ids = '{$id}'";
    $atw = $db->Query($stw);
    $code = $atw[0][0];//流程代号
    $tw = $atw[0][1];  //流程到哪了
    //查询该流程下的节点数
    $sfp = "select count(*) from FlowPath where Code = '{$code}'";
    $sl = $db->StrQuery($sfp);
    //如果流程走到的位置大于等于了该流程中节点总数
    if($tw>=$sl)
    {
        $ok = "update UserFlow set IsOk = true where Ids = '{$id}'";
        $db->Query($ok,1);    
    }
    
    header("location:shenhe.php");    
}
else
{
    echo "审核失败!";    
}
View Code
  • 退出系统页面:
<?php
session_start();
unset($_SESSION["uid"]);
header("location:login.php");
原文地址:https://www.cnblogs.com/xinghun/p/5541694.html