11月20日上午流程管理

1.建立一个添加页面,在这个页面上可以选择增加节点。

add.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" />
<script src="../jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head>

<body>
<div>请选择流程节点:<br /><br />
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();

$suser = "select * from users";
$auser = $db->Query($suser);

foreach($auser as $v)
{
    echo "<input class=‘rd‘ type=‘radio‘ value=‘{$v[0]}‘ name=‘user‘ />{$v[2]}&nbsp;";//把所有可以添加节点的人的名字列出来
}
?>
</div><br />

<div><input type="button" value="添加节点" id="jiedian" /></div>
<br />
<div>
<?php

//把添加的节点显示在添加节点按钮下面
$attr = array();//把节点存在session里面,先定义一个空的数组。
if(!empty($_SESSION["user"]))//如果session不是空的
{
    $attr = $_SESSION["user"];//就把session存的用户名放到数组attr里面
}

foreach($attr as $k=>$v)//遍历出用户名
{
    $sname = "select name from users where uid=‘{$v}‘";//找出attr里面存的用户的姓名
    $name = $db->StrQuery($sname);

    echo "<div>{$k}--{$name}--<input type=‘button‘ value=‘删除‘ bs=‘{$k}‘ class=‘shanchu‘ /></div>";//输出索引--用户名--删除。当添加错误时方便直接删除
}

?>
</div>
<br />
<div>
请输入流程名称:
<input type="text" id="name" />
</div>
<br />
<input type="button" value="保存" id="xinjian" />

</body>
<script type="text/javascript">
$("#jiedian").click(function(){

    //取选中的应户名
    var uid="";
    var rd = $(".rd");//找到class为rd的
    for(var i=0;i<rd.length;i++)//把class为rd的全部遍历出来
    {
        if(rd.eq(i).prop("checked"))//如果是选中状态
        {
            uid = rd.eq(i).val();//取出选中的属性值,也就是取出bs值。
        }
    }
    $.ajax({
            url:"chuli.php",
            data:{uid:uid,type:0},//传的type是为了一个页面处理多个ajax时区分处理的哪一个ajax的。
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                window.location.href="add.php";

                }
        })
    })

$(".shanchu").click(function(){//给class为shanchu的添加删除事件
        var sy = $(this).attr("bs");
        $.ajax({
            url:"chuli.php",
            data:{sy:sy,type:1},//传的type是为了一个页面处理多个ajax时区分处理的哪一个ajax的。
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                window.location.href="add.php";

                }
        })
    })

$("#xinjian").click(function(){
        var name = $("#name").val()
        $.ajax({
            url:"chuli.php",
            data:{name:name,type:2},//传的type是为了一个页面处理多个ajax时区分处理的哪一个ajax的。
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                window.location.href="add.php";

                }
        })
    })
</script>
</html>

2.处理页面。所有的处理页面全部在这个页面处理,用switch写。

chuli.php

<?php
//所有的ajax都调用同一个处理页面,要知道是谁调的,在传值时除了需要传必要的值,还要调另一个值type
session_start();

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

$type = $_POST["type"];//取出ajax里面的type值
$uid = $_POST["uid"];

switch($type)
{
    case 0://如果type是0,执行下面代码。注意这里是冒号
        $uid = $_POST["uid"];
        if(empty($_SESSION["user"]))//如果是第一次点击,session里面是空的。
        {
            $_SESSION["user"] = array($uid);//把取到的uid存到session里面。
        }
        else//如果session里面已经有内容
        {
            $attr = $_SESSION["user"];//先把session里面的内容取出来
            $attr[] = $uid;//把新取到的uid存到attr里面
            $_SESSION["user"] = $attr;//再把新的数组存到session里面
        }
        break;

    case 1://当type=1时,执行的是删除事件
        $sy = $_POST["sy"];//取出class为shanchu的项的索引值。
        $attr = $_SESSION["user"];//取出session里面存储的数据。
        unset($attr[$sy]);//删除目标索引的项
        $attr = array_values($attr);//重新索引一遍attr
        $_SESSION["user"] = $attr;
        break;

    case 2://当type=2时,执行的是删除事件
        $name = $_POST["name"];//取出neme值。
        $code = time();//取时间戳
        $slc = "insert into liucheng values(‘{$code}‘,‘{$name}‘)";//往liucheng表格里添加数据
        $db->Query($slc,0);

        $attr = array();
        if(!empty($_SESSION["user"]))
        {
            $attr = $_SESSION["user"];
        }

        foreach($attr as $k=>$v)
        {
            $sfp = "insert into flowpath values(‘‘,‘{$code}‘,‘{$v}‘,‘{$k}‘)";//往flowpath表里面添加数据
            $db->Query($sfp,0);
        }
        break;

    case 3://填充userflow表
        $code = $_POST["code"];
        $nr = $_POST["nr"];
        $uid = $_SESSION["uid"];
        $rq = time();
        $sql = "insert into userflow values(‘‘,‘{$code}‘,‘{$uid}‘,‘{$nr}‘,0,‘{$rq}‘,0)";
        $db->Query($sql,0);
        break;
}?>

3.登录页面

login.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>
<form action="loginchuli.php" method="post">
    <div><input type="text" name="uid" /></div>
    <div><input type="text" name="pwd" /></div>
    <div><input type="submit" value="登录" /></div>
</form>
</body>
</html>

4.登录处理页面

loginchuli.php

<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];
$sql = "select pwd from users where uid=‘{$uid}‘";

$mm = $db->StrQuery($sql);
if($mm == $pwd && $pwd!="")
{
    $_SESSION["uid"] = $uid;
    header("location:main.php");
}
else
{
    echo "登录失败";
}?>

5.主页面

main.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>
<a href="faqi.php">发起流程</a>

<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>发起者</td>
        <td>发起时间</td>
        <td>流程名称</td>
        <td>流程内容</td>
        <td>是否结束</td>
        <td>操作</td>
    </tr>
<?php
    session_start();
    include("../DBDA.class.php");
    $db = new DBDA();

    $uid = $_SESSION["uid"];
    $sql = "select * from userflow";
    $attr = $db->Query($sql);

    foreach($attr as $v)
    {
        $v[1];//流程代号
        $v[6];//流程走到哪了

        //根据流程代号和当前登陆者用户名查orders
        $szai = "select count(*) from flowpath where code=‘{$v[1]}‘ and uids=‘{$uid}‘";

        $n = $db->StrQuery($szai);
        //该人员在该流程下
        if($n>0)
        {
            $sorder = "select orders from flowpath where code=‘{$v[1]}‘ and uids=‘{$uid}‘";
            $order = $db->StrQuery($sorder);

            if($v[6]>=$order)//判断该人员的流程和已经走到的流程
            {

                $str = "";
                if($v[6]==$order)//如果流程走到登陆者的流程
                {
                    $str = "<a href=‘tongguo.php?ids={$v[0]}‘>通过</a>";//做一个通过按钮,点击通过表示该登陆者已经同意。
                }
                else//如果流程已经大于登录者的流程,就显示已通过。
                {
                    $str =  "<span style=‘color:green‘>已通过</span>";
                }
                echo "<tr><td>{$v[2]}</td>
                          <td>{$v[5]}</td>
                             <td>{$v[1]}</td>
                             <td>{$v[3]}</td>
                             <td>{$v[4]}</td>
                          <td>{$str}</td>
                          </tr>";
            }
        }
    }

    ?>
</table>
</body>
</html>

6.发起流程页面

faqi.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" />
<script src="../jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head>

<body>

<h1>发起流程</h1>
<div>
请选择要发起的流程:
<select id="sel">
<?php
    include("../DBDA.class.php");
    $db = new DBDA();
    $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 id="xq"></textarea>

</div>
<br />
<input type="button" value="发起" id="btn" />

</body>
<script type="text/javascript">

$("#btn").click(function(){
        var code = $("#sel").val();
        var nr = $("#xq").val();
            $.ajax({
            url:"chuli.php",
            data:{code:code,nr:nr,type:3},//传的type是为了一个页面处理多个ajax时区分处理的哪一个ajax的。
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                window.location.href="main.php";

                }
        })

    })

</script>
</html>

7.通过页面,点击通过按钮表示批改人同意申请。

shenqing.php

<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA();
$ids = $_GET["ids"];
$sql = "update userflow set towhere = towhere+1 where ids=‘{$ids}‘";//点击通过以后就让流程+1
$db->Query($sql,0);

$stw = "select code,towhere from userflow where ids = ‘{$ids}‘";

$tw = $db->Query($stw);

$lcdaihao = $atw[0][0];
$towhere = $atw[0][1];

$jiedian = "select count(*) from flowpath where code=‘{$lcdaihao}‘";//求出节点的总数量
$shuliang = $db->StrQuery($jiedian);

if($towhere>=$shuliang)//流程走到哪>=流程总数量说明流程已经走完
{
    $su = "update userflow set isok = 1 where ids=‘{$ids}‘";
    $db->Query($su,0);
}

header("location:main.php");?>
时间: 2024-10-10 14:08:36

11月20日上午流程管理的相关文章

11月18日上午权限管理1:对用户角色的增删改

<!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-

tmux使用——2019年11月20日16:40:15

1.tmux 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令.用户与计算机的这种临时的交互,称为一次"会话"(session) . 会话的一个重要特点是,窗口与其中启动的进程是连在一起的.打开窗口,会话开始:关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完. 一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令.这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的

4月20日上午学习日志

2017年4月20日上午看了张宇数学18讲第三讲一元函数微分学的概念和计算部分的例题,题较难,遇到一些问题,一点点解出来的.

2019-03-18 Python time 将2015年11月20日转换为2015-11-20

#ReportingDate = soup.select('body > div.main > div > div.ctr > div.recruit > ul > li > a')[0].text.split('(')[-1].split(')')[0] ReportingDate ="2015年11月20日" array = time.strptime(ReportingDate, u"%Y年%m月%d日") try:

4月20日作业战略管理、业务流程管理与重组、知识管理

一.战略管理 1.企业战略的特点有哪些? 全局性.长远性.抗争性.纲领性 2.企业战略决策的特点有哪些? 决策的对象是负责的,很难把握住它的结构.并且没有先例的,对其处理上也没有经验可循 面对的问题常常是突发性的,难以预料的,所依靠的来自外部的情报很少 决策的性质直接涉及到企业的前途 评价困难,难以标准化 3.战略管理分为哪三步?(记) 战略管理可以分为:战略制定.战略执行.战略评估 4.组织的使命包括组织哲学和组织宗旨,请写下2者的定义. 组织哲学:是指一个组织为其经营活动所确立的价值观.信念

2016年11月20日--存储过程、视图

存储过程: 存储过程(stored procedure)有时也称为sproc.存储过程存储于数据库中而不是在单独的文件中,有输入参数.输出参数以及返回值等. 在数据库中,创建存储过程和创建其他对象的过程一样,除了它使用的AS关键字外. create proc 存储过程名  --创建存储过程   或    alter proc 存储过程名  --  修改存储过程 参数1 参数类型,参数2 参数类型……参数n 参数类型 as begin---  ={ 查.插.删.改 end---  =} 1 --存

10月20日上午SQl数据库作业解析

设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示.用SQL语句创建四个表并完成相关题目.                  表1-1数据库的表结构 表(一)Student (学生表)                         字段名 数据类型 可否为空 含 义 Sno varchar(20) 否 学号(主键) Sname

2016年11月20日 星期日 --出埃及记 Exodus 20:11

For in six days the LORD made the heavens and the earth, the sea, and all that is in them, but he rested on the seventh day. Therefore the LORD blessed the Sabbath day and made it holy. 因为六日之内,耶和华造天,地,海,和其中的万物,第七日便安息,所以耶和华赐福与安息日,定为圣日.

SQL server 主键,外键的使用及子查询的使用 11月20日

 今天上午学习了SQL server里面主键和外键的使用以及如何建立主键与外键的联系 下午学习了SQL server 里面子查询如何应用,里面还练习了函数的运用(字符串函数,聚合函数) 今日小结:通过学习了解了主键和外键的使用,以及子查询(select 查询嵌套)的用法,子查询把小的范围放在括号里面,外面再用大范围包含起来.