利用ajax和PHP实现简单的流程管理


Posted in PHP onMarch 23, 2017

本文实例为大家分享了ajax和PHP实现简单的流程管理,供大家参考,具体内容如下

首先要先有一个新建流程的页面xinjian.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>
<script src="../FENGZHUANG/jquery-3.1.1.min.js"></script>
</head>

<body>
<h1>新建流程</h1>

<div>
请选择节点人员:
<select id="user">
 <?php
 session_start();//需要将一些数据暂时存在session里
 include("../FENGZHUANG/DBDA.class.php");
 $db = new DBDA();
 
 $sql = "select * from users";
 $arr = $db->Query($sql);
 foreach($arr as $v)
 {
  echo "<option value='{$v[0]}'>{$v[2]}</option>";
 }
 ?>
</select>
<input type="button" value="添加节点" id="add" />
</div>
<br />
<div>
 <?php
 if(!empty($_SESSION["user"]))
 {
  $attr = $_SESSION["user"];
  foreach($attr as $k=>$v) //索引为$k,取值为$v
  {
   $sname = "select name from users where uid='{$v}'"; //取出名称
   $name = $db->StrQuery($sname);
   echo "<div>{$k}--{$name}--<input type='button' value='删除' key='{$k}' class='del' /></div>"; //向处理页面传的是key的值
  }
 }
 ?>
</div>
<br />
<div>请输入流程名称:<input type="text" id="name" /></div>
<br />
<input type="button" value="保存" id="btn" />


</body>
<script type="text/javascript">
//添加节点按钮加点击
$("#add").click(function(){
  var uid = $("#user").val();
  $.ajax({
   url:"chuli.php",
   data:{uid:uid,type:0}, //传入一个type参数,以确保在同一页面处理时与其它的分开处理
   type:"POST",
   dataType:"TEXT",
   success: function(data){
     window.location.href="xinjian.php" rel="external nofollow" rel="external nofollow" ; //刷新页面
    }
   });
 })
 
//给删除按钮加点击
$(".del").click(function(){
  var key = $(this).attr("key"); //取删除的是哪条数据
  $.ajax({
   url:"chuli.php",
   data:{key:key,type:1},
   type:"POST",
   dataType:"TEXT",
   success:function(data){
    window.location.href="xinjian.php" rel="external nofollow" rel="external nofollow" ;
    }
   });
 })
//给保存按钮加点击
$("#btn").click(function(){
  var name = $("#name").val(); //取输入框中输入内容的值
  $.ajax({
   url:"chuli.php",
   data:{name:name,type:2},
   type:"POST",
   dataType:"TEXT",
   success:function(data){
     alert("保存成功!");
    }
   });
 })
</script>
</html>

利用ajax和PHP实现简单的流程管理

数据库图片:

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

处理页面chuli.php

<?php
session_start();
include("../FENGZHUANG/DBDA.class.php");
$db = new DBDA();

$type = $_POST["type"];

switch($type)
{
 case 0://添加节点的加载数据,向session数组中添加数据
  $uid = $_POST["uid"];
  if(empty($_SESSION["user"]))
  {
   $arr = array($uid);
   $_SESSION["user"] = $arr;
  }
  else
  {
   $arr = $_SESSION["user"];
   array_push($arr,$uid);
   $_SESSION["user"] = $arr;
  }
  break;
  
 case 1://取节点的索引,然后删除,重新索引
  $key = $_POST["key"];
  $arr = $_SESSION["user"];
  unset($arr[$key]); //删除
  $arr = array_values($arr); //重新索引
  $_SESSION["user"] = $arr;
  break;
  
 case 2:
  $name = $_POST["name"];
  $code = time();
  //添加流程
  $sql = "insert into liucheng values('{$code}','{$name}')";
  $db->Query($sql,0);
  //添加流程节点
  $arr = $_SESSION["user"];
  foreach($arr as $k=>$v)
  {
   $sql = "insert into flowpath values('','{$code}','{$v}','{$k}')";
   $db->Query($sql,0);
  }
  break;
  
 case 3: //用户发起流程
  $code = $_POST["code"];
  $nr = $_POST["content"];
  $uid = $_SESSION["uid"];
  $time = date("Y-m-d H:i:s");
  $sql = "insert into userflow values('','{$code}','{$uid}','{$nr}',0,'{$time}',0)";
  $db->Query($sql,0);
  break;
  
}

发起流程页面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" />
<title>发起流程</title><br />
<script src="../FENGZHUANG/jquery-3.1.1.min.js"></script>

</head>

<body>

<h1>发起流程</h1>

<div>
请选择发起的流程:
 <select id="liucheng">
  <?php
  session_start();
  include("../FENGZHUANG/DBDA.class.php");
  $db = new DBDA();
  $sql = "select * from liucheng";
  $arr = $db->Query($sql);
  foreach($arr as $v)
  {
   echo "<option value='{$v[0]}'>{$v[1]}</option>";
  }
  ?>
 </select>
</div>
<br />
<div>
请输入内容:
 <textarea id="nr"></textarea>
</div>
<br />
<input type="button" value="发起" id="btn" />


</body>
<script type="text/javascript">
$("#btn").click(function(){
  var code = $("#liucheng").val();
  var content = $("#nr").val();
  
  $.ajax({
   url:"chuli.php",
   data:{code:code,content:content,type:3},
   type:"POST",
   dataType:"TEXT",
   success: function(data){
    alert("发起成功!");
    }   
   });
 })
</script>
</html>

利用ajax和PHP实现简单的流程管理

审核页面shenhe.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>
<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("../FENGZHUANG/DBDA.class.php");
 $db = new DBDA();
 $uid = $_SESSION["uid"];
 echo $uid;
 //查找登录者参与的所有流程
 $sql = "select * from userflow where code in(select code from flowpath where uids='{$uid}')";
 $arr = $db->Query($sql);
 
 //显示
 foreach($arr as $v)
 {
  //判断该流程走到登录者
  $lcdh = $v[1]; //流程代号
  $towhere = $v[6];//流程走到哪
  $sql = "select orders from flowpath where code='{$lcdh}' and uids='{$uid}'";
  $order = $db->StrQuery($sql);//该人员在流程中的次序
  
  if($towhere>=$order)
  {
   $caozuo = "";
   if($towhere==$order)
   {
    $caozuo="<a href='tongguo.php?code={$v[0]}'>通过</a>";
   }
   else
   {
    $caozuo="<span style='background-color:green;color:white'>已通过</span>";
   }
   echo "<tr>
  <td>{$v[1]}</td>
  <td>{$v[2]}</td>
  <td>{$v[3]}</td>
  <td>{$v[4]}</td>
  <td>{$v[5]}</td>
  <td>{$caozuo}</td> 
 </tr>";
  }
  
 }
 ?>
</table>
</body>
</html>

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

利用ajax和PHP实现简单的流程管理

tongguo.php

<?php
session_start();
include("../FENGZHUANG/DBDA.class.php");
$db = new DBDA();

//流程往下走
$code = $_GET["code"];
$sql = "update userflow set towhere=towhere+1 where ids='{$code}'"; //使流程向下走
$db->Query($sql,0);

//判断流程是否结束
$sql = "select * from userflow where ids='{$code}'";
$arr = $db->Query($sql);

$lcdh = $arr[0][1]; //流程代号
$tw = $arr[0][6]; //流程走到哪

$sql = "select count(*) from flowpath where code='{$lcdh}'";
$count = $db->StrQuery($sql); //该流程节点人数
if($tw>=$count)
{
 $sql = "update userflow set isok=1 where ids='{$code}'"; //如果结束了流程,将isok项改为结束。
 $db->Query($sql,0);
}


header("location:shenhe.php");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP如何透过ODBC来存取数据库
Oct 09 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php 面向对象的一个例子
Apr 12 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
php session 写入数据库
Feb 13 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP与SQL语句常用大全
Dec 10 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 #PHP
Paypal实现循环扣款(订阅)功能
Mar 23 #PHP
PHP+JQUERY操作JSON实例
Mar 23 #PHP
php实现多维数组排序的方法示例
Mar 23 #PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 #PHP
php PDO实现的事务回滚示例
Mar 23 #PHP
降低PHP Redis内存占用
Mar 23 #PHP
You might like
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
Python 的AES加密与解密实现
2019/07/09 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
运动会广播稿100字
2014/01/11 职场文书
学生会主席事迹材料
2014/01/28 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书