小妹再次发帖请教各位前辈如何做三级下拉框联动问题。
以下是我的代码!请各位前辈指正。
--
-- 表的结构 `city`
--CREATE TABLE `city` (
`idcity` int(11) NOT NULL auto_increment COMMENT '城市ID',
`idprovince` int(11) NOT NULL COMMENT '省ID',
`city_name` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '城市名称',
PRIMARY KEY (`idcity`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;--
-- 导出表中的数据 `city`
--INSERT INTO `city` (`idcity`, `idprovince`, `city_name`) VALUES
(1, 1, '石家庄市'),
(2, 1, '邯郸市'),
(3, 3, '东城区'),
(4, 3, '西城区'),
(5, 3, '崇文区'),
(6, 3, '宣武区');-- ----------------------------------------------------------
-- 表的结构 `province`
--CREATE TABLE `province` (
`idprovince` int(11) NOT NULL auto_increment COMMENT '省ID',
`province_name` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '名称',
PRIMARY KEY (`idprovince`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;--
-- 导出表中的数据 `province`
--INSERT INTO `province` (`idprovince`, `province_name`) VALUES
(1, '河北省'),
(2, '河南省'),
(3, '北京市'),
(4, '广东省');-- ----------------------------------------------------------
-- 表的结构 `user`
--CREATE TABLE `user` (
`uid` int(11) NOT NULL auto_increment COMMENT 'user表ID',
`user_name` varchar(50)character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '用户姓名',
`idprovince` int(11) NOT NULL COMMENT '所属省ID',
`idcity` int(11) NOT NULL COMMENT '所属城市ID',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;--
-- 导出表中的数据 `user`
--INSERT INTO `user` (`uid`, `user_name`, `idprovince`, `idcity`) VALUES
(1, '张三', 1, 0),
(2, '李四', 1, 1),
(3, '王五', 2, 0),
(4, '店小二', 3, 3),
(5, '孙二娘', 3, 4),
(6, '武松', 3, 6);以下是PHP代码 <?PHP
session_start();
require("../../includes/dbconn.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=gb2312" />
<title>三级联动</title>
<script language="javascript">
var citylen = 0;
arraycity = new Array(); //生成二级联动所用数组
<?
$sql="select city.idcity,
province.idprovince,
city.city_name,
province.province_name
from city left join province on city.idprovince=province.idprovince";
//getRsArray() 从数据库里读取数据。返回一个多行的数据
$rs=$dbc->getRsArray($sql);
//$dbc->num_rows;//返回查询结果有多少行。
for($i=0;$i<$dbc->num_rows;$i++){?>
arraycity[<?=$i?>] = new Array(<?=$rs[$i][idcity]?>,"<?=addslashes($rs[$i][city_name])?>",<?=$rs[$i][idprovince]?>);
<? }?>
citylen=<?=$dbc->num_rows?>function chgprovince(province) //选择省
{
var i;
var city=document.getElementById("city");
city.length = 0;
city.options[0] = new Option("-请选择-",0);
for(i=0;i<citylen;i++)
{
if(arraycity[i][2]==province)
{
city.options[city.length] = new Option(arraycity[i][1],arraycity[i][0]);
}
}
//这里我还想得到这个省里有多少个用户
//$sql="select * from user where idprovince=所选的省";
}
function chgcity(city) //选择市
{
//这里我还想得到选择省,选择市之后有多少用户
//$sql="select * from user where idprovince=所选的省 and idcity=所选的市";
}
function init(){
chgprovince(0);
}
</script>
</head>
<body>
省:<select name="province" id="province" onchange="chgprovince(this.value)">
<option value="0">-请选择-</option>
<?
$sql="select * from province";
$rs_province=$dbc->getRsArray($sql);
for($i=0;$i<$dbc->num_rows;$i++){
?>
<option value="<?=$rs_province[$i][idprovince]?>"><?=$rs_province[$i][province_name]?></option>
<?}?>
</select>
城市:<select name="city" id="city" onchange="chgcity(this.value)">
<option value="0">-请选择-</option>
</select>
用户:<select name="user" id="user">
<option value="0">-请选择-</option>
</select>
</body>
</html>
以下是我的代码!请各位前辈指正。
--
-- 表的结构 `city`
--CREATE TABLE `city` (
`idcity` int(11) NOT NULL auto_increment COMMENT '城市ID',
`idprovince` int(11) NOT NULL COMMENT '省ID',
`city_name` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '城市名称',
PRIMARY KEY (`idcity`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;--
-- 导出表中的数据 `city`
--INSERT INTO `city` (`idcity`, `idprovince`, `city_name`) VALUES
(1, 1, '石家庄市'),
(2, 1, '邯郸市'),
(3, 3, '东城区'),
(4, 3, '西城区'),
(5, 3, '崇文区'),
(6, 3, '宣武区');-- ----------------------------------------------------------
-- 表的结构 `province`
--CREATE TABLE `province` (
`idprovince` int(11) NOT NULL auto_increment COMMENT '省ID',
`province_name` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '名称',
PRIMARY KEY (`idprovince`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;--
-- 导出表中的数据 `province`
--INSERT INTO `province` (`idprovince`, `province_name`) VALUES
(1, '河北省'),
(2, '河南省'),
(3, '北京市'),
(4, '广东省');-- ----------------------------------------------------------
-- 表的结构 `user`
--CREATE TABLE `user` (
`uid` int(11) NOT NULL auto_increment COMMENT 'user表ID',
`user_name` varchar(50)character set utf8 collate utf8_unicode_ci NOT NULL COMMENT '用户姓名',
`idprovince` int(11) NOT NULL COMMENT '所属省ID',
`idcity` int(11) NOT NULL COMMENT '所属城市ID',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;--
-- 导出表中的数据 `user`
--INSERT INTO `user` (`uid`, `user_name`, `idprovince`, `idcity`) VALUES
(1, '张三', 1, 0),
(2, '李四', 1, 1),
(3, '王五', 2, 0),
(4, '店小二', 3, 3),
(5, '孙二娘', 3, 4),
(6, '武松', 3, 6);以下是PHP代码 <?PHP
session_start();
require("../../includes/dbconn.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=gb2312" />
<title>三级联动</title>
<script language="javascript">
var citylen = 0;
arraycity = new Array(); //生成二级联动所用数组
<?
$sql="select city.idcity,
province.idprovince,
city.city_name,
province.province_name
from city left join province on city.idprovince=province.idprovince";
//getRsArray() 从数据库里读取数据。返回一个多行的数据
$rs=$dbc->getRsArray($sql);
//$dbc->num_rows;//返回查询结果有多少行。
for($i=0;$i<$dbc->num_rows;$i++){?>
arraycity[<?=$i?>] = new Array(<?=$rs[$i][idcity]?>,"<?=addslashes($rs[$i][city_name])?>",<?=$rs[$i][idprovince]?>);
<? }?>
citylen=<?=$dbc->num_rows?>function chgprovince(province) //选择省
{
var i;
var city=document.getElementById("city");
city.length = 0;
city.options[0] = new Option("-请选择-",0);
for(i=0;i<citylen;i++)
{
if(arraycity[i][2]==province)
{
city.options[city.length] = new Option(arraycity[i][1],arraycity[i][0]);
}
}
//这里我还想得到这个省里有多少个用户
//$sql="select * from user where idprovince=所选的省";
}
function chgcity(city) //选择市
{
//这里我还想得到选择省,选择市之后有多少用户
//$sql="select * from user where idprovince=所选的省 and idcity=所选的市";
}
function init(){
chgprovince(0);
}
</script>
</head>
<body>
省:<select name="province" id="province" onchange="chgprovince(this.value)">
<option value="0">-请选择-</option>
<?
$sql="select * from province";
$rs_province=$dbc->getRsArray($sql);
for($i=0;$i<$dbc->num_rows;$i++){
?>
<option value="<?=$rs_province[$i][idprovince]?>"><?=$rs_province[$i][province_name]?></option>
<?}?>
</select>
城市:<select name="city" id="city" onchange="chgcity(this.value)">
<option value="0">-请选择-</option>
</select>
用户:<select name="user" id="user">
<option value="0">-请选择-</option>
</select>
</body>
</html>
@session_start();
/**
* 内置的json函数只能用户utf8,你的页面是gb2312的,所以只能写个json函数了
*/
function myjson($arr){
if (is_array($arr)){
if (is_assoc($arr)){
return assoc2json($arr);
}else{
return array2json($arr);
}
}else{
return $arr;
}
}
function is_assoc($arr){
if (!is_array($arr) )
return false;
$keys = array_keys($arr);
if (!count($arr) || preg_match("/^\d+$/",join('',$keys)))
return false;
else
return true;
}
function assoc2json($arr){
$rev=array();
foreach ($arr as $key=>$val){
$rev[] = "\"".h($key)."\":".(is_array($val)?myjson($val):"\"".(nltobr(h($val)))."\"");
}
return '{'.join(',',$rev).'}';
}
function array2json($arr){
$rev=array();
foreach ($arr as $val){
$rev[]=is_array($val)?myjson($val):"'".( nltobr(h($val)))."'";
}
return '['.join(',',$rev).']';
}header('Content-type:text/html;charset=gb2312');
require("../../includes/dbconn.php"); //这就是个数据库的类$sql="select * from province";
$rs_province=$dbc->getRsArray($sql);$sql="select city.idcity,
province.idprovince,
city.city_name,
province.province_name
from city left join province on city.idprovince=province.idprovince";
$rs=$dbc->getRsArray($sql);if ( isset($_GET['act']) ){
$rs = array('cities'=>array(),'users'=>array());
switch($_GET['act']){
case 'getCities':
$provid = intval($_GET['province']);
$rs['cities'] = $dbc->getRsArray("Select * From city where idprovince=$provid");
$rs['users'] = $dbc->getRsArray("Select * From `user` where idprovince=$provid");
$json = myjson($rs);
break;
case 'getUsers':
$cityid = intval($_GET['city']);
$rs['users'] = $dbc->getRsArray("Select * From `user` where idcity=$cityid");
$json = myjson($rs);
break;
}
exit($json);
}
?>
<!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=gb2312" />
<!-- jquery.js这个文件自己去jquery.com下载 -->
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript" src="http://www.json.org/json2.js" ></script><title>三级联动</title>
<script language="javascript">
var citylen = 0;
arraycity = new Array(); //生成二级联动所用数组
var url = "<?php echo $_SERVER['REQUEST_URI']?>";function chgprovince(prov) //选择省
{
var provid = prov.options[prov.selectedIndex].value;
$.get(url,{'act':'getCities','province':provid},function (data){
var rs = JSON.parse(data);
var el_city = document.getElementById('city');
while (el_city.options.length>1){
el_city.removeChild(el_city.lastChild);
}
for (var i=0; i<rs['cities'].length;i++){
var op=document.createElement('option');
op.value = rs['cities'][i]['idcity'];
op.innerHTML = rs['cities'][i]['city_name'];
el_city.appendChild(op);
}
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['username'];
usr_city.appendChild(op);
}
});
}
function chgcity(el_city) //选择市
{
var cityid=el_city.options[ el_city.selectedIndex ].value;
$.get(url,{'act':'getUsers','city':cityid},function(data){
var rs = JSON.parse(data);
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['username'];
usr_city.appendChild(op);
}
});
}</script>
</head>
<body>
省:<select name="province" id="province" onchange="chgprovince(this)">
<option value="0">-请选择-</option>
<?php
for($i=0;$i<$dbc->num_rows;$i++):?>
<option value="<?=$rs_province[$i][idprovince]?>"><?=$rs_province[$i][province_name]?></option>
<?php endfor?>
</select>
城市:<select name="city" id="city" onchange="chgcity(this)">
<option value="0">-请选择-</option>
</select>
用户:<select name="user" id="user">
<option value="0">-请选择-</option>
</select>
</body>
</html>
http://www.json.org/json2.js
这里下载jquery-1.4.2.js 和json2.js但是提示我错误!
IMPORTANT:Remove this line from json2.js before deployment.然后网页提示我14行错误!
Line:14
Char:5
Code:0
Error:'$' 未定义
网址:http://localhost/crm2.5/admin/test/ThreeDown.php
Line:14
Char:5
Code:0
Error:'$' 未定义并且只有第一个省有值,市和用户都没有值!
说明jquery的路近有问题
Char:13
Code:0
Error:例外被抛出且未被接住
网址:http://localhost/crm2.5/admin/js/json2.js
把
var rs=JSON.parse(data)
替换成
window['eval']("var rs="+data+";");
提示我语法错误!我把生成页面的整段代码贴出来! <!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=gb2312" />
<title>三级联动</title>
<script type="text/javascript" src="../js/jquery-1.4.2.js" ></script>
<script type="text/javascript" src="../js/json2.js" ></script><script language="javascript">
var citylen = 0;
arraycity = new Array(); //生成二级联动所用数组
var url = "/crm2.5/admin/test/ThreeDown.php";function chgprovince(prov) //选择省
{
var provid = prov.options[prov.selectedIndex].value;
$.get(url,{'act':'getCities','province':provid},function (data){
window['eval']("var rs="+data+";");
var el_city = document.getElementById('city');
while (el_city.options.length>1){
el_city.removeChild(el_city.lastChild);
}
for (var i=0; i<rs['cities'].length;i++){
var op=document.createElement('option');
op.value = rs['cities'][i]['idcity'];
op.innerHTML = rs['cities'][i]['city_name'];
el_city.appendChild(op);
}
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['username'];
usr_city.appendChild(op);
}
});
}
function chgcity(el_city) //选择市
{
var cityid=el_city.options[ el_city.selectedIndex ].value;
$.get(url,{'act':'getUsers','city':cityid},function(data){
window['eval']("var rs="+data+";");
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['username'];
usr_city.appendChild(op);
}
});
}</script>
</head>
<body>
省:<select name="province" id="province" onchange="chgprovince(this)">
<option value="0">-请选择-</option>
<option value="1">河北省</option>
<option value="2">河南省</option>
<option value="3">北京市</option>
<option value="4">广东省</option>
</select>
城市:<select name="city" id="city" onchange="chgcity(this)">
<option value="0">-请选择-</option>
</select>
用户:<select name="user" id="user">
<option value="0">-请选择-</option>
</select>
</body>
</html>
<br />
<b>Fatal error</b>: Call to undefined function h() in<b> D:\wamp\www.crm2.5\admin\test\ThreeDown.php</b> on line
<b>29</b><br />
把这个加上function h($str,$quotes=ENT_QUOTES){
return htmlentities($str,$quotes,'gb2312');
}
function nltobr($str){
return str_replace("\r",'<br />',str_replace("\n",'<br />',str_replace("\r\n",'<br />',$str)));
}
Char:10
Code:0
Error:缺少 '}'也就是
window['eval']("var rs="+data+";"); 这行
好长啊!
op.innerHTML = rs['users'][i]['username'];
应该改成你
op.innerHTML = rs['users'][i]['user_name'];
是个口 还是个乱码!!数据一多还打印不出来!!不知道为什么!我一会把代码发出来大家帮我看看!或者有什么好的解决办法帮帮我吧!
$dbc->getRsArray 返回的是一个结果集。
$dbc->num_rows 返回的是这个结果集里有多少行 <?PHP
session_start();
require("../../includes/dbconn.php");//这就是个数据库的类function myjson($arr){
if (is_array($arr))
{
if (is_assoc($arr))
{
return assoc2json($arr);
}
else
{
return array2json($arr);
}
}
else
{
return $arr;
}
}
function is_assoc($arr){
if (!is_array($arr))
{
return false;}
$keys = array_keys($arr);
if (!count($arr) || preg_match("/^\d+$/",join('',$keys)))
{ return false;}
else{
return true;}
}
function assoc2json($arr){
$rev=array();
foreach ($arr as $key=>$val){
$rev[] = "\"".h($key)."\":".(is_array($val)?myjson($val):"\"".(nltobr(h($val)))."\"");
}
return '{'.join(',',$rev).'}';
}
function array2json($arr){
$rev=array();
foreach ($arr as $val){
$rev[]=is_array($val)?myjson($val):"'".( nltobr(h($val)))."'";
}
return '['.join(',',$rev).']';
}
function h($str,$quotes=ENT_QUOTES){
return htmlentities($str,$quotes,'gb2312');
}
function nltobr($str){
return str_replace("\r",'<br />',str_replace("\n",'<br />',str_replace("\r\n",'<br />',$str)));
}$sql="select * from province";
$rs_province=$dbc->getRsArray($sql);
$province_num=0;
$province_num=$dbc->num_rows;$sql="select city.idcity,
province.idprovince,
city.city_name,
province.province_name
from city left join province on city.idprovince=province.idprovince";
$rs=$dbc->getRsArray($sql);if ( isset($_GET['act']) ){
$rs = array('cities'=>array(),'users'=>array());
switch($_GET['act']){
case 'getCities':
$provid = intval($_GET['province']);
$rs['cities'] = $dbc->getRsArray("select * From city where idprovince=$provid");
$rs['users'] = $dbc->getRsArray("select * From user where idprovince=$provid");
$json = myjson($rs);
break;
case 'getUsers':
$cityid = intval($_GET['city']);
$rs['users'] = $dbc->getRsArray("select * From `user` where idcity=$cityid");
$json = myjson($rs);
break;
}
exit($json);
}
?>
<!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=gb2312" />
<title>三级联动</title>
<script type="text/javascript" src="../js/jquery-1.4.2.js" ></script>
<script language="javascript">
var citylen = 0;
arraycity = new Array(); //生成二级联动所用数组
var url = "<?php echo $_SERVER['REQUEST_URI']?>";function chgprovince(prov) //选择省
{
var provid = prov.options[prov.selectedIndex].value;
//alert(provid);
$.get(url,{'act':'getCities','province':provid},function (data){
//alert(data);
window['eval']('var rs='+data+';');
var el_city = document.getElementById('city');
while (el_city.options.length>1)
{
el_city.removeChild(el_city.lastChild);
}
for (var i=0; i<rs['cities'].length;i++)
{
alert(rs['cities'][i]['city_name']);
var op=document.createElement('option');
op.value = rs['cities'][i]['idcity'];
op.innerHTML = rs['cities'][i]['city_name'];
el_city.appendChild(op);
}
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
alert(rs['users'][i]['user_name']);
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['user_name'];
usr_city.appendChild(op);
}
});
}
function chgcity(el_city) //选择市
{
var cityid=el_city.options[ el_city.selectedIndex ].value;
$.get(url,{'act':'getUsers','city':cityid},function(data){
alert(data);
window['eval']('var rs='+data+';');
var usr_city = document.getElementById('user');
while (usr_city.options.length>1){
usr_city.removeChild(usr_city.lastChild);
}
for (var i=0; i<rs['users'].length;i++){
var op=document.createElement('option');
op.value = rs['users'][i]['uid'];
op.innerHTML = rs['users'][i]['user_name'];
usr_city.appendChild(op);
}
});
}</script>
</head>
<body>
省:<select name="province" id="province" onchange="chgprovince(this)">
<option value="0">-请选择-</option>
<?php
for($i=0;$i<$province_num;$i++):?>
<option value="<?=$rs_province[$i][idprovince]?>"><?=$rs_province[$i][province_name]?></option>
<?php endfor?>
</select>
城市:<select name="city" id="city" onchange="chgcity(this)">
<option value="0">-请选择-</option>
</select>
用户:<select name="user" id="user">
<option value="0">-请选择-</option>
</select>
</body>
</html>
用简单想法的去看这个功能,可以将它分成3个独立的简单功能:1、通过数组生成下拉框;2、三个数组分别对应各个级别的数据;3:下拉框值发生改变时触发更新下一级的下拉框(也就是删除下拉框的子元素,或者直接innerHTML="",然后重新生成下拉框)。
把更新下一级下拉框的触发点放对,三个数组数据可以写死在页面上,也可以通过ajax从服务器获得。
<!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>
<select id="level1" onchange="setselect2(this);"></select>
<br/>
<br/>
<select id="level2" onchange="setselect3(this);"></select>
<br/>
<br/>
<select id="level3"></select>
<script type="text/javascript">
var l1no=0;
var l2no=0; var l1data=[["1","aaaaa"],["2","bbbbb"]];
var l2data=new Array();
l2data[0]=new Array();
l2data[1]=new Array();
l2data[0]=[["1","11aaaaa"],["2","12bbbbb"],["3","13ccccc"]];
l2data[1]=[["1","21aaaaa"],["2","22bbbbb"],["3","23ccccc"]]; var l3data=new Array();
l3data[0]=new Array();
l3data[0][0]=new Array();
l3data[0][1]=new Array();
l3data[0][2]=new Array();
l3data[0][0]=[["1","111aaaaa"],["2","112bbbbb"]];
l3data[0][1]=[["1","121aaaaa"],["2","122bbbbb"]];
l3data[0][2]=[["1","131aaaaa"],["2","132bbbbb"]];
l3data[1]=new Array();
l3data[1][0]=new Array();
l3data[1][1]=new Array();
l3data[1][2]=new Array();
l3data[1][0]=[["1","211aaaaa"],["2","212bbbbb"]];
l3data[1][1]=[["1","221aaaaa"],["2","222bbbbb"]];
l3data[1][2]=[["1","231aaaaa"],["2","232bbbbb"]]; CreateSelect(document.getElementById("level1"),l1data);
SelectOrigin(document.getElementById("level2"));
SelectOrigin(document.getElementById("level3")); function setselect2(){
var cur1val=arguments[0].value;
if(cur1val=="-1"){
SelectOrigin(document.getElementById("level2"));
SelectOrigin(document.getElementById("level3"));
return true;
}
n=l1data.length;
for(i=0;i<n;i++){
if(l1data[i][0]==cur1val){
l1no=i;
break;
}
}
CreateSelect(document.getElementById("level2"),l2data[l1no]);
SelectOrigin(document.getElementById("level3"));
} function setselect3(){
var cur2val=arguments[0].value;
if(cur2val=="-1"){
SelectOrigin(document.getElementById("level3"));
return true;
}
n=l2data[l1no].length;
for(i=0;i<n;i++){
if(l2data[l1no][i][0]==cur2val){
l2no=i;
break;
}
}
CreateSelect(document.getElementById("level3"),l3data[l1no][l2no]);
} function CreateSelect(selobj,valarr,seledval) {
selobj.innerHTML="";
if (typeof seledval == 'undefined'){
seledval='-1';
}
var opno=0;
n=valarr.length;
opt = new Option();
opt.value = "-1";
opt.text = "-select-";
if(seledval=='-1'){
opt.selected = true;
}
selobj.options[opno] = opt;
opno++;
for(i=0;i<n;i++){
opt = new Option();
opt.value = valarr[i][0];
opt.text = valarr[i][1];
if(valarr[i][0]==seledval){
opt.selected = true;
}
selobj.options[opno] = opt;
opno++;
}
selobj.length = opno;
}
function SelectOrigin(selobj) {
selobj.innerHTML="";
opt = new Option();
opt.value = "-1";
opt.text = "-select-";
selobj.options[0] = opt;
}
</script>
</body>
</html>