博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OrgChart 组织架构与PHP结合使用
阅读量:6329 次
发布时间:2019-06-22

本文共 4120 字,大约阅读时间需要 13 分钟。

一、OrgChart下载地址:

https://github.com/dabeng/OrgChart
二、组织架构的表设计
CREATE TABLE `org_info` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '组织ID',`name` varchar(36) NOT NULL DEFAULT '' COMMENT '组织名称',`content` varchar(256) NOT NULL DEFAULT '' COMMENT '组织内容',`pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级ID',`path` varchar(256) NOT NULL DEFAULT '' COMMENT '父级路径(逗号分割)',PRIMARY KEY (`id`),KEY `path` (`path`)) ENGINE=MyISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='组织信息表';
三、index.html代码如下:
    
当前节点: 部门名称:
子部门 同级部门
四、data.php代码如下:
name = 'xxx有限公司'; $obj->children = $data; echo json_encode($obj);} else if($act == 'orgFrm') { //处理组织表单 $addOrgAct = !empty($_POST['addOrgAct']) ? trim($_POST['addOrgAct']) : ''; //判断表单方法是否为空 if(empty($addOrgAct)) { exit; } //当前节点名 $curNodeName = !empty($_POST['curNodeName']) ? trim($_POST['curNodeName']) : ''; //当前节点ID $curNodeId = !empty($_POST['curNodeId']) ? trim($_POST['curNodeId']) : 0; //组织名称 $orgName = !empty($_POST['orgName']) ? trim($_POST['orgName']) : ''; if($addOrgAct == 'add') { $addOrgType = !empty($_POST['addOrgType']) ? trim($_POST['addOrgType']) : ''; if(empty($orgName)) { exit; } if($addOrgType == 'sib') { //添加兄弟节点 if(empty($curNodeId)) { exit; } //获取兄弟节点的pid和path $sql = "SELECT `pid`,`path` FROM `org_info` WHERE `id`={$curNodeId}"; $ret = mysql_query($sql); $row = mysql_fetch_assoc($ret); $path = $row['path']; $pid = $row['pid']; //添加节点 $sql = "INSERT INTO `org_info`(`name`, `pid`, `path`) VALUES('{$orgName}', {$pid}, '{$path}')"; mysql_query($sql); $nodeId = mysql_insert_id(); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $nodeId; echo json_encode($obj); exit; } } else { //添加子节点 //获取当前节点的path $sql = "SELECT `path` FROM `org_info` WHERE `id`={$curNodeId}"; $ret = mysql_query($sql); $row = mysql_fetch_assoc($ret); $path = $row['path']; $path = !empty($path) ? (rtrim($path, ',') . ',' . $curNodeId) : $curNodeId; $pid = $curNodeId; //添加节点 $sql = "INSERT INTO `org_info`(`name`, `pid`, `path`) VALUES('{$orgName}', {$pid}, '{$path}')"; mysql_query($sql); $nodeId = mysql_insert_id(); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $nodeId; echo json_encode($obj); exit; } } } else if($addOrgAct == 'del') { //删除所有有父节点中有该节点的子节点 $sql = "DELETE FROM `org_info` WHERE FIND_IN_SET('{$curNodeId}',`path`) OR `id`={$curNodeId}"; mysql_query($sql); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $curNodeId; echo json_encode($obj); exit; } } else if($addOrgAct == 'edt') { if(empty($orgName)) { exit; } //更新节点 $sql = "UPDATE `org_info` SET `name`='{$orgName}' WHERE `id`={$curNodeId}"; mysql_query($sql); if(mysql_affected_rows()) { $obj = new StdClass(); $obj->name = $orgName; $obj->id = $curNodeId; echo json_encode($obj); exit; } }}
五、效果如下:
OrgChart 组织架构与PHP结合使用 - 怀素真 - 因上努力 果上随缘

转载于:https://www.cnblogs.com/jkko123/p/6352052.html

你可能感兴趣的文章
Windows Live Writer 使用指南
查看>>
分析iOS Crash文件,使用命令符号化iOS Crash文件
查看>>
R学习笔记 第五篇:字符串操作
查看>>
在Mac OS下配置PHP开发环境
查看>>
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
判断二叉树是否平衡、是否完全二叉树、是否二叉排序树
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>