ComboTree中的会计科目树形菜单实现方法

 更新时间:2017年7月6日 23:33  点击:1426
本篇文章为大家介绍了ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法,很有参考价值的,有需要的朋友就来看一看吧。

假设数据库中会计科目数据表的字段为:id,code,name,islast。分别为自增主键,科目编码,科目名称,是否为末级("1"表示末级科目)。

这里在Thinkphp的模型层中使用递归来构建ComboTree所需的数据,代码及注解如下:

 

 代码如下复制代码

namespace Home\Model;

use Think\Model;

 

class AccountModel extends Model{

 

  publicfunctiongetTreeList(){ 

  $data = $this->field('id,code,name,islast')->select();

  foreach($data as &$v){       //这里加入了元素pid,用来标识父级id的   

   $len = strlen($v['code']);

   if($len == 3){          //这里假设长度为3位的科目编码是一级,5位为二级科目,7位为三级,以此类推

    $v['pid'] = 0;

   }else{

    $v['pid'] = substr($v['code'],0,$len-2);

   } 

  }

  return$this->createTree($data);//生成ComboTree所需的数据结构

 }

  

 //递归的方式生成子树

 privatefunctioncreateSubTree($data,$pid){

  $tree = array();

  foreach($data as $k=>$v){

   if($v['pid'] == $pid){

    $newDate = array(

     'id'=> $v['id'],

     'text'=>$v['name'],

     'state'=>($v['islast'] != 1)?'closed':'open'

    );

    if($v['islast'] != 1){        //如果不是末级科目调用自身生成子数据

     $subData = $this->createSubTree($data,$v['code']);

     if(!empty($subData)){

      $newDate['children'] = $subData; 

     }

    }

    array_push($tree,$newDate);

   }  

  }

  return$tree;

 }

  

 //生成树,先从一级会计科目分类开始创建树形菜单数据

 privatefunctioncreateTree($data){ 

  $ret = array();

  foreach($data as $k => $v){

   if($v['pid'] == 0){

    $newDate = array( //创建为ComboTree能够识别的格式,这里我没有更好的办法了,只能这样处理

     'id'=> $v['id'],

     'text'=>$v['name'],

     'state'=>'closed'

    );

    $subData = $this->createSubTree($data,$v['code']);

    if(!empty($subData)){

     $newDate['children'] = $subData; 

    }

    $ret[] = $newDate;

   }   

  }

  return$ret;

 } 

}

 

类似上述的数据(如部门,地区等)需要构建树形菜单的简单修改代码后基本都能实现类似功能。

PHP在大家的生活中应用还是很多的,今天文章就给大家介绍下PHP获取文本框、密码域、按钮的值实例代码,有想法的赶紧来复制了。

获取表单元素提交的值是表单应用中最基本的操作方法。本节中定义POST()方法提交数据,对获取表单元素提交的值进行详细的讲解。

获取文本框、密码域、按钮的值

获取表单数据,实际上就是获取不同的表单元素的数据。

标签中的 name 是所有表单元素都具备的属性,即这个表单元素的名称,在使用时需要使用 name 属性来获取响应的 value 属性值。 所以,添加的所有控件必须定义对应的 name 属性值。另外,控件在命名上尽可能不要重复,以免获取的数据出错。

在程序开发过程中,获取文本框、密码域、隐藏域、按钮以及文本域的值的方法是相同的,都是使用 name 属性来获相应的 value 属性值。 本节仅以获取文本框中的数据信息为例,讲解获取表单数据的方法。希望朋友们能够举一反三,自己进行尝试完成其他控件值的获取。

下面使用登录实例来学习如何获取文本框的信息。在下面的实例中,如果用户点击 “登录” 按钮,则获取用户名和密码。

具体的实现步骤如下所示:

(1)利用任意的一种开发工具,创建一个PHP动态页,并将其命名为 index.php。

(2)添加一个表单,一个文本框和一个提交按钮,代码如下所示:

  

  form

  

   


用户名:

密 码:

     

   

  

(3)在

表单元素外的任意位置添加 PHP 标记符,使用 if 条件语句判断用户是否提交了表单,如果判断条件成立,则使用 echo 语句输出使用 $_POST[] 方法获取的用户名和密码,代码如下的现实:

<?php

if($_POST["submit"] =="登录"){      // 判断提交的按钮名称是否为“登录”

 // 使用 echo 语句输出使用 $_POST[] 方法获取的用户名和密码

 echo"用户名为:".$_POST['user'] ."
密码为:".$_POST['pwd'];

}

?>

注意: 在应用文本框传值时,一定要正确的设置文本框的 name 属性,其中不应该有空格;在获取文本框的值时,使用的文本框名称一定要与表单文本框中设置的 name 相同,否则将不能获取文本框的值。

(4)在浏览器中输入运行地址,按回车键,得到如下图所示的运行结果:

 代码如下复制代码

PHP的使用也是很广泛的,今天文章就给大家介绍个实例:PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算,下面具体来看看。

本文实例讲述了PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算方法。分享给大家供大家参考,具体如下:

其实就是strtotime这个内置函数

//PHP 日期 加减 周

date("Y-m-d",strtotime("2013-11-12 +1 week"))

//PHP 日期 加减 天数

date("Y-m-d",strtotime("2013-11-12 12:12:12 +1 day"))

//PHP 日期加减小时

date("Y-m-d h:i:s",strtotime("2013-11-12 12:12:12 +1 hour"))

//PHP 日期 加减 月数

date("Y-m-d",strtotime("2013-11-12 12:12:12 +1 month"))

//PHP 日期 加减 分

date("Y-m-d h:i:s",strtotime("2013-11-12 12:12:12 +1 minute"))

//PHP 日期 加减 秒

date("Y-m-d h:i:s",strtotime("2013-11-12 12:12:12 +1 second"))

PHP的应用是很受欢迎的,很多人都喜欢应用PHP,今天文章就给大家介绍下示例:php简单随机字符串生成,感兴趣的下面一起来看看。

本文实例讲述了php简单随机字符串生成方法。分享给大家供大家参考,具体如下:

<?php

functionrand_str($length,$p='all'){

 $nums=�'

 $lowers='abcdefghijklmnopqrstuvwxyz'

 $uppers='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

 if($p=='all') {

  $src=$nums.$lowers.$uppers;

 }else{

  $src=''

  if(strpos($p,'num') !== false)

   $src.=$nums;

  if(strpos($p,'lower') !== false)

   $src.=$lowers;

  if(strpos($p,'upper') !== false)

   $src.=$uppers;

 }

 return$src?substr(str_shuffle($src), 0,$length) :$src;

}

?>

去网上搜了一下随机字符串的php函数, 发现大部分的实现都用到了循环--这有点低效率啊. 在php中, 有各种各样的函数, 只有你想不到, 没有他想不到. str_shuffle()函数可以轻松做到随机字符串. 不过呢, 还是封装一个吧, 毕竟有的人有只用大写字母和只用数字的需求.

函数的第二个参数num, lower, upper可以随意组合哦.

真正核心的语句只有一行

substr(str_shuffle($src), 0,$length)

作用是将字符串$src乱序并且截取前$length个字符.

 代码如下复制代码

[!--infotagslink--]

相关文章

  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • Vue.js 递归组件实现树形菜单(实例分享)

    本文主要对介绍利用Vue.js 的递归组件,实现了一个最基本的树形菜单。具有很好的参考价值,下面就跟着小编一起来看下吧...2017-01-09
  • PHP翻页跳转功能实现方法

    我们都知道用php+mysql在web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下,页面的显示情况将会变的非常糟糕,下面就来介绍一下如何实现当...2015-11-08
  • 网页自动调用国内双核浏览器的极速模式的实现方法

    由于国内好几个浏览器都是双核浏览器(蛋痛,做一个浏览器壳就说国产,而且使用率高),有时打开网页会出现不兼容模式,在极速模式下是好的,现在我们来用代码实现网页自动调用国内...2016-09-20
  • jquery实现树形菜单完整代码

    这篇文章主要介绍了jquery实现树形菜单完整代码,需要的朋友可以参考下...2016-01-02
  • winform树形菜单无限级分类实例

    本文介绍了“winform树形菜单无限级分类实例”,需要的朋友可以参考一下...2020-06-25
  • PHP中对汉字进行unicode编码和解码的实现方法

    小编推荐的这篇文章介绍了PHP中对汉字进行unicode编码和解码的实现方法,非常实用,有兴趣的同学可以参考一下。 代码如下复制代码 //将内容进行UNICODE编码fu...2017-07-06
  • 微信扫码网站自动登录的实现方法

    微信扫码网站自动登录的原是还是比较简单的,只要各位知道相互的原理就可以实现了,下面我们来看两个例子,我相信各位看了这两个例子肯定知道怎么来做了。 magento 微...2016-11-25
  • php怎么运行c语言?php调用C代码的实现方法

    在php程序中有事会需要用到C代码,这篇文章着重介绍一下用C写php扩展的方法,而且不需要重新编译php。有需要的同学可以参考一下。 在php程序中需要用到C代码,应该是下...2017-07-06
  • php使用PDO事务配合表格读取大量数据插入操作实现方法

    本文介绍了php使用PDO事务配合表格读取大量数据插入操作实现方法,非常实用,有兴趣的同学快来看看吧。 在处理大量数据的时候,或者同时对几个表操作,而这几个表的操作...2017-07-06
  • php mysql_insert_id()返回数据库最新id实现方法

    php mysql_insert_id()返回数据库最新id实现方法 有需要同学可参考一下。 代码如下 复制代码 mysql_insert_id() mysql_insert_id() 函数...2016-11-25
  • 用PHP将Unicode 转化为UTF-8的实现方法

    小编推荐的这篇文章介绍了用PHP将Unicode 转化为UTF-8的实现方法,非常实用,有兴趣的同学快来看看吧。 代码如下复制代码 functionunescape($str) { $str= ra...2017-07-06
  • 异步JS框架的作用以及实现方法

    从异步JS的重要性开始说起,再引入异步js框架,一步步的深入了解异步JS。1.异步JS的重要性 随着Web平台地位的提升,霸占着浏览器的JavaScript语言也成为了世界上最流行的语言之一,甚至通过Node.js进入了服务器编程领域。Jav...2015-10-30
  • php页面缓存实现方法总结

    在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文章最后一个实现就有讲到,大家可参考一...2016-11-25
  • php模拟socket 多次发送数据的实现方法

    表四:Socket函数 函数名 描述 socket_accept() 接受一个Socket连接 socket_bind() 把socket绑定在一个IP地址和端口上 socket_clear_error() 清除socket...2016-11-25
  • PHP页面定时跳转实现方法

    php定时跳转我们需要利用header函数输入html或js代码来实现定时跳转了,下面我来介绍一个简单的例子 php代码 代码如下 复制代码 header("ref...2016-11-25
  • android开发之应用程序全屏实现方法

    今天我们来讲述一下简单的方法就是android开发之应用程序全屏实现方法,有需要的同学可以参考一下本文章。 一般Android的应用启动时都有欢迎界面,类似QQHD启动那样...2016-09-20
  • 网站加速PHP缓冲的免费实现方法

    我们知道 Zend 有免费的优化引擎针对 PHP 而作,但是 FreeLAMP 这次采用的是一个叫做 PHP Accelerator 的缓冲产品。   我们在 “LAMP 加速” 这篇文章中阐述过加速的...2016-11-25