利用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的图形函数中显示汉字
Oct 09 PHP
详细介绍PHP应用提速面面观
Oct 09 PHP
开发大型 PHP 项目的方法
Jan 02 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php switch语句多个值匹配同一代码块应用示例
Jul 29 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
10条php编程小技巧
Jul 07 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
php文件系统处理方法小结
May 23 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
php中实现进程锁与多进程的方法
Sep 18 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牛逼的面试题分享
2013/01/18 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP代码优化技巧小结
2015/09/29 PHP
js不是基础的基础
2006/12/24 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
JSON相关知识汇总
2015/07/03 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
Vue.js的动态组件模板的实现
2018/11/26 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
python中模块的__all__属性详解
2017/10/26 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
python实现桌面壁纸切换功能
2019/01/21 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
物理教学随笔感言
2014/02/22 职场文书
小学庆六一活动总结
2014/08/28 职场文书
2015年底工作总结范文
2015/05/15 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers