php流程控制(新建流程)

流程控制,又是一个广泛应用于办公自动化等内部自定义流程及审核的功能。比如请假流程啊,申请办公用品经费,报销申请啊,等等,需要层层审批通过才能完成的(按规章办事,最好别越级,你说是吧)

不习惯一篇博客太长,看不过来,这篇我们先实现流程的新建

先看看效果图

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 ?>
时间: 05-24

php流程控制(新建流程)的相关文章

05 js三大流程控制(顺序流程、分支控制、循环控制)

1.Javascript的控制语句 ①顺序控制 ②分支控制 2.1单分支 if (条件表达式) {执行语句} 2.2双分支 if (条件表达式){ }else{ } 2.3多分支 if (条件表达式){ //执行 }else if() { //执行 }else if ..... ()//可以有多个else if { //执行 } else{ //可以没有 } 强调一点: 一旦找到一个满足条件的入口,执行完毕后,就直接结束整个多分支. switch(条件表达式){ case 常量1: //执行语句

06 js三大流程控制(顺序流程、分支控制、循环控制) 、js调式技巧

循环控制 ①For循环 for (var i =0;i< 10 ;i++ ) {  document.writeln("你好<br>"); } ②While先判断再执行语句 while (i< 10) {   document.writeln("hello<br>"); i++; } ③Do while 先执行再判断 var i=0; do {   document.writeln("ni hao <br>&

数组,流程控制

  一.数组的基本概念及作用 数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型 Int [ ]a = new int [ ] {1,2,3,4,5}; 1.数组有两种申明方式:1,数组类型 [ ] 数组名字; int [ ] a; 2,数组类型 数组名字 [ ]; int a [ ]; 二.数组的创建方式 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值 Char [ ] chAry = new char

PHP第五课 自动类型转换与流程控制

学习概要: 1.了解自动类型转换的有哪些 2.了解基本的流程控制语句 3.实例:实现日历表格的写法 自动类型转换 1)整型转字符串 echo $num."abc"; 2)字符串转整型 $str+3; 3)转布尔类型 为假情况 0 "" "0" false array() null 未定义 4)强制类型转换 (int)$str (float)$str (string)$str 5)常量 define("HOST","l

【原】Java学习笔记005 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 程序的流程控制(流程结构):顺序结构.选择结构.循环结构 6 7 // 顺序结构:从上向下,顺序执行 8 System.out.println("出生..."); 9 System.out.println("享受人生..."); 10 System.out.print

PHP第五课 自己主动类型转换与流程控制

学习概要: 1.了解自己主动类型转换的有哪些 2.了解主要的流程控制语句 3.实例:实现日历表格的写法 自己主动类型转换 1)整型转字符串 echo $num."abc"; 2)字符串转整型 $str+3; 3)转布尔类型 为假情况 0 "" "0" false array() null 没有定义 4)强制类型转换 (int)$str (float)$str (string)$str 5)常量 define("HOST",&q

黑马程序员——Java基础语法(二)---流程控制

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础.常见的流程控制主要有四类:判断结构.选择结构.循环结构.其他控制结构 一.判断结构 判断结构的标志是if语句,if语句主要有三种表现形式: 1.if(条件表达式) { 执行语句 } 注意: 1.如果if语句中只有一条语句,那么可以不写大括号.不过初学者一定要写括号,以免出错. 2.如果if语句没写大括号,if就只能控制

python流程控制while和if

流程控制 1.流程控制if if的4种语法 语法1:   #结构形式 #if条件: # 代码1 # 代码2 # 代码3 # ... key_bak=123 key=int(input('key:')) if key==key_bak: print('login') print('end...') 语法2: #结构形式 #if条件: # 代码1 # 代码2 # ... #else: # 代码1 # 代码2 # ... name=input('please input your name:') if

流程控制、方法

一.流程控制分类  流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:分支结构.循环结构和顺序结构. 1.java分支结构分为两种: ①if条件分支,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行,等值和区间都可以,if的使用范围大 ②switch  case,匹配固定值(整形/字符/布尔值/字符串(jdk1.7+)不到迫不得已不要用字符串匹配):判断条件类型单一:在分支执行完后(如果没有break跳出),不加判断地执行下去:default可以省略(default的位置可以

python语法之流程控制(if while for)

一.python语法之流程控制 1.1什么是流程控制? 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(判断).循环结构(while for) 二.分支结构 2.1 什么是分支结构? 分支结构就是根据条件判断的真假去执行不同分支对应的子代码 2.2 为什么要用分支结构? 为了让计算机可以有像人一样的逻辑判断能力去做事 2.3 怎么使用分支结构? 引入if语句 定义:主要是用于判断事物的对错 真假 是否可行 语法结构