• 技术文章 >后端开发 >php教程

    php-流程管理(php+Ajax)

    大家讲道理大家讲道理2017-05-28 09:51:05原创973
    php+AJAX新建流程

    1:需要明确需要操作哪些流程?

    2:每一个流程需要那些人员来执行?

    3:执行该流程人员的顺序是什么?

    php入门到就业线上直播课:进入学习

    一. 数据库建需要用到的三张表,分别是:users表;liucheng表;flowpath表(表中已显示所做的数据)

    二. 新建流程的页面

    (1)用下拉列表显示人员的名单并且加一个添加按钮


    <h1>新建流程</h1>
    <p>
    请选择节点人员:
    	<select id="user">
        <?php
    	session_start();
    	require"../DBDA.class.php";
    	$db = new DBDA();
    	$sql = "select * from users";
    	$arr = $db->query($sql,1);
    	foreach($arr as $v)
    	{
    		echo"<option value='{$v[0]}'>{$v[2]}</option>";  //输出单选按钮,数组中的索引2,也就是用户名,但是它的值是代号
    	}
    	?>
        </select>
        
    <input type="button" value="添加节点" id="addjd" />
    </p>
    <br />


    (2)对添加节点按钮添加点击事件


    $("#addjd").click(function(){
    		var uid = $("#user").val();
    		$.ajax({
    				url:"add.php",
    				data:{uid:uid},
    				type:"POST",
    				dataType:"TEXT",
    				success: function(data){
    						window.location.href="xinjian.php";//执行处理页面成功后会刷新页面
    					}
    			}) 
    	})


    (3)添加节点的处理页面 add.php


    <?php
    session_start();
    $uid = $_POST["uid"]; //接收传过来的值if(empty($_SESSION["jiedian"]))
    {
    	$arr = array($uid);//定义一个数组放用户
    	$_SESSION["jiedian"] = $arr; //将第一个用户放入数组中}
    else
    {
    	$arr = $_SESSION["jiedian"];//数组中有值
    	$arr[] = $uid; //放入数组中值
    	$_SESSION["jiedian"] = $arr; //将值再交给session}


    (4)在新建流程页面中显示添加的节点


    <p>
    <?php
    if(empty($_SESSION["jiedian"]))
    {
    	echo"还未添加节点人员!";
    }
    else
    {
    	$arr = $_SESSION["jiedian"];
    	foreach($arr as $k=>$v)
    	{
    		$sql ="select name from users where uid='{$v}'";
    		$name =$db->strquery($sql);
    		echo"<p>{$k}--{$name}--<input type='button' value='移除' class='yichu' sy='{$k}'/></p>";
    	}
    }
    ?>
    </p>
    <br />


    完成到这一步以后,效果如下:

    (5)给移除按钮添加单击事件


    $(".yichu").click(function(){
    		var sy = $(this).attr("sy"); //点击这个按钮,选中这个的索引号
    		$.ajax({
    			url:"yichu.php",
    			data:{sy:sy},
    			type:"POST",
    			dataType:"TEXT",
    			success: function(data){
    				window.location.href="xinjian.php";//执行处理页面成功后会刷新页面
    			}
    		});
    	})


    (6)移除处理页面 yichu.php


    <?php
    session_start();
    
    $sy =$_POST["sy"]; //接收穿过来的索引号$arr = $_SESSION["jiedian"];//节点的数组unset($arr[$sy]); //删除数据$arr = array_values($arr);//重新索引$_SESSION["jiedian"] = $arr;


    (7)节点的问题解决以后,那么就是流程的名称了,写名称的文本框:重要的就是对此流程的保存,那么就要有保存按钮


    <p>
    请输入流程名称:<input type="text" id="mingcheng" />
    </p>
    <br />
    <input type="button" value="保存" id="baocun" />


    (8)给保存按钮的添加单击事件


    $("#baocun").click(function(){
    	var name = $("#mingcheng").val();
    	$.ajax({
    		url:"baocun.php",
    		data:{name:name},
    		type:"POST",
    		dataType:"TEXT",
    		success: function(data){
    			alert("保存成功!");
    		}
    	});
    })	


    (9)最后是保存流程的处理页面


    <?php
    session_start();
    require "../DBDA.class.php";
    $db = new DBDA();
    
    $name = $_POST["name"];
    $code = time();
    
    $sql ="insert into liucheng values('{$code}','{$name}')";
    $db->query($sql);
    
    $arr = $_SESSION["jiedian"];
    
    foreach($arr as $k=>$v)
    {
    	$sql ="insert into flowpath values('','{$code}','{$v}',{$k})"; //注意建表的类型,这里的orders项用的是int型,所以{$k}不用加'',而且建表主键要勾选自增长
    	$db->query($sql);
    }


    当然内容也相应的保存在了数据库中,效果见最上面的数据表

    下面代码用来copy用:

    1.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="../jquery-3.2.0.min.js"></script></head>
    
    <body>
    <h1>新建流程</h1>
    <p>请选择节点人员:    <select id="user">
        <?php    session_start();    require"../DBDA.class.php";    $db = new DBDA();    $sql = "select * from users";    $arr = $db->query($sql,1);    foreach($arr as $v)
        {        echo"<option value='{$v[0]}'>{$v[2]}</option>";
        }    ?>
        </select>
        
    <input type="button" value="添加节点" id="addjd" />
    </p>
    <br />
    <p>
    <?phpif(empty($_SESSION["jiedian"]))
    {    echo"还未添加节点人员!";
    }else{    $arr = $_SESSION["jiedian"];    foreach($arr as $k=>$v)
        {        $sql ="select name from users where uid='{$v}'";        $name =$db->strquery($sql);        echo"<p>{$k}--{$name}--<input type='button' value='移除' class='yichu' sy='{$k}'/></p>";
        }
    }?>
    </p>
    <br />
    <p>请输入流程名称:<input type="text" id="mingcheng" />
    </p>
    <br />
    <input type="button" value="保存" id="baocun" />
    
    </body>
    
    <script type="text/javascript">$("#addjd").click(function(){        var uid = $("#user").val();
            $.ajax({
                    url:"add.php",
                    data:{uid:uid},
                    type:"POST",
                    dataType:"TEXT",
                    success: function(data){
                            window.location.href="xinjian.php";
                        }
                }) 
        })
    
    $(".yichu").click(function(){        var sy = $(this).attr("sy");
            $.ajax({
                url:"yichu.php",
                data:{sy:sy},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    window.location.href="xinjian.php";
                }
            });
        })
        
    $("#baocun").click(function(){    var name = $("#mingcheng").val();
        $.ajax({
            url:"baocun.php",
            data:{name:name},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                alert("保存成功!");
            }
        });
    })    
    </script>
    </html>


    2.add.php


    <?phpsession_start();$uid = $_POST["uid"];if(empty($_SESSION["jiedian"]))
    {    $arr = array($uid);    $_SESSION["jiedian"] = $arr;
    }else{    $arr = $_SESSION["jiedian"];    $arr[] = $uid;    $_SESSION["jiedian"] = $arr;
    }


    3.yichu.php


    <?phpsession_start();$sy =$_POST["sy"];$arr = $_SESSION["jiedian"];unset($arr[$sy]);$arr = array_values($arr);$_SESSION["jiedian"] = $arr;


    4.baocun.php


    <?phpsession_start();require "../DBDA.class.php";$db = new DBDA();$name = $_POST["name"];$code = time();$sql ="insert into liucheng values('{$code}','{$name}')";$db->query($sql);$arr = $_SESSION["jiedian"];foreach($arr as $k=>$v)
    {    $sql ="insert into flowpath values('','{$code}','{$v}',{$k})";    $db->query($sql);
    }


    //输出单选按钮,数组中的索引2,也就是用户名,但是它的值是代号

    以上就是php-流程管理(php+Ajax)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php+AJAX新建流程
    上一篇:微信第三方登录demo 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 工具包分享:PHP实现滑块验证图片• Symfony2函数用法实例分析,symfony2实例分析_PHP教程• Drupal读取Excel并导入数据库实例_PHP教程• PHP中的SimpleXML处理_PHP教程• PHP页面跳转与跨站提交伪造Referer地址来源_PHP教程
    1/1

    PHP中文网