搜档网
当前位置:搜档网 › 两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)

两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)

两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)
两天时间用AJAX写了个无限级的多级联动菜单(ajax+PHP构架)

花了两天时间。研究AJAX,终于独立完成一个无限组的多级菜单联动功能。主要特点:就是HTML静态页面可以无刷新的与PHP动态角本文件及数据库交互(这也是AJAX的核心目的)。

以下把代码贴出来。供大家参考指正:

ajax.js文件(位于根目录下js子目录)

var xmlHttp;

function createXmlHttp(){

if(window.XMLHttpRequest){

xmlHttp=new XMLHttpRequest();

}else{

xmlHttp=new ActiveXObject("Microsoft.XMLHttp");

}

}

basic_inc.php(位于根目录下/include子目录下)

$DB_SERVER="localhost";

$DB_NAME="ajax";

$DB_USER="root";

$DB_PASSWORD="";

?>

conn.php(位于根目录下/include子目录下)

require_once("dir_inc.php");

require_once($ROOT_DIR."include/basic_inc.php");

@ $db=mysql_connect($DB_SERVER,$DB_USER) or die ("faile!".mysql_error());

@mysql_select_db($DB_NAME);

?>

dir_inc.php(位于根目标下/include子目录下)

$ROOT_DIR="../";

?>

select_menu.html(位于根目录下是核心前台文件)

select_menu

列表A

列表B

列表C

select_menu.php(位于根目录下。是select_menu.html文件调用的程序文件)

require_once("dir_inc.php");

require_once($ROOT_DIR."include/conn.php"); $selectId=$_REQUEST['selectedId'];

if(empty($selectId)){$selectid="INIT";}

mysql_query("SET NAMES gbk`");

$sql="select * from select_menu where pid='".$selectId."'"; $result=mysql_query($sql);

$str="";

$counter=0;

$str="{";

while($rows=mysql_fetch_assoc($result)){

if($counter>0){

$str.=",";

}

$str.="'";

$str.=$rows['id'];

$str.="':'";

$str.=$rows['text'];

$str.="'";

$counter++;

}

//$strlen=strlen($str);

//$str=substr($str,0,($strlen-1));

$str.="}";

echo $str;

mysql_free_result($result);

mysql_close($db);

?>

ajax.sql(数据库文件)数据库名为阿ajax

#

# T able structure for table 'select_menu'

#

CREATE TABLE `select_menu` (

`id` varchar(255) NOT NULL default '',

`text` varchar(255) NOT NULL default '',

`pid` varchar(255) NOT NULL default '',

`seq` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED COMMENT='1.4';

#

# Dumping data for table 'select_menu'

#

INSERT INTO select_menu VALUES("A1","selectAobject1","INIT","1"); INSERT INTO select_menu VALUES("A2","selectAobject2","INIT","2"); INSERT INTO select_menu VALUES("B11","selectBobject11","A1","1"); INSERT INTO select_menu VALUES("B12","selectBobject12","A1","2"); INSERT INTO select_menu VALUES("B13","selectBobject13","A1","3"); INSERT INTO select_menu VALUES("B21","selectBobject21","A2","1"); INSERT INTO select_menu VALUES("B22","selectBobject22","A2","2"); INSERT INTO select_menu VALUES("C111","selectCobject111","B11","1"); INSERT INTO select_menu VALUES("C112","selectCobject112","B11","2"); INSERT INTO select_menu VALUES("C121","selectCobject","B12","1"); INSERT INTO select_menu VALUES("C122","selectCobject122","B12","2"); INSERT INTO select_menu VALUES("C131","selectCobject131","B13","1"); INSERT INTO select_menu VALUES("C132","selectCobject132","B13","2"); INSERT INTO select_menu VALUES("C211","selectCobject211","B21","1"); INSERT INTO select_menu VALUES("C212","selectCobject212","B21","2"); INSERT INTO select_menu VALUES("C221","selectCobject221","B22","1"); INSERT INTO select_menu VALUES("C222","selectCobject222","B22","2");

excel应用场景:多级联动下拉列表实现选择一级部门下的二级部门

excel应用场景:多级联动下拉列表实现选择一级部门下的二 级部门 很多小伙伴们都知道,利用数据有效性功能做一个下拉列表,可以让用户从列表中选择选项,避免手工输入造成的错误。但是你们知道如何做一个多级联动下拉列表吗?先让我介绍一下,什么叫多级联动下拉列表。例如,公司里面的部门,分为一级部门,二级部门等。要求用户在选择了一个一级部门后,在二级部门中,只能选择一级部门对应的那些二级部门。最终效果我们就以上面这个例子开始,向小伙伴们,演示一下如何做这样一个多级联动下拉列表。动画演示解析:首先,分别定义了[市场部]和[信息研发部]名称,来管理各自对应的二级部门。然后,在数据有效性中,指定一级部门的数据序列来源于{B1:C1}最后,在数据有效性中,指定二级部门的数据序列来源于Indirect(D8),快速适用公式到其他二级部门单元格中。这里只有一点要说明一下,那就是Indirect(D8)的作用。Indirect(D8)的执行细节,如下图:Indirect函数解析附:Indirect(ref)函数的定义:返回文本字符串ref所指定的引用扩展:如果是三级联动,例如下图中的例子,怎么做呢?最终效果请看动画演示效果:动画效果三级部门联动原理和二级部门联动的例子是一样的。最后总结一下,这一期的主要内容是联动下拉列表的实现,包括二级

联动以及三级联动。用到的主要功能点是:在名称管理器中创建名称来管理对应的单元格区域,以及通过Indirect函数去查找地址对应的实际引用(相当于二次查找)。欢迎大家观看,转发,并留下宝贵意见,谢谢。本文是[谈谈生活谈谈职场]的原创,如要转载,请联系作者。关键词:Excel 联动下拉列表,Excel 联动下拉框,Indirect。

Ajax实现三级联动

Web.Config中: ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- javascript脚本: -----------------------------------------------------------------------------------------------