织梦dedecms有现成的二级联动管理,可以添加并生成二级联动的JS代码,使用起来非常方便。
如果要实现自己的效果,可能要对联动过程做一点开发。
下面的代码实例是在二级联动的过程中,添加了一个新的字段,以保存选项的值,并在前台根据JS的值做不同的事件。
<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
//查询根节点
$dsql->SetQuery("SELECT evalue,ename from `ddmx_sys_enum` where egroup='center' AND evalue%500 = 0 order by disorder asc, evalue asc");
$dsql->Execute();
$enums = array();
$sort = 1 ;
while($row = $dsql->GetArray())
{
$options .= "<option value=\"{$sort}\">{$row['ename']}</option>\r\n";
$enums[] = $row['evalue'];
$sort ++ ;
}
$count = count($enums);
foreach($enums as $i=>$evalue)
{
//添加了一个名为link的字段,保存选项的跳转链接
$dsql->SetQuery("SELECT evalue,ename,link from `ddmx_sys_enum` where egroup='center' AND evalue > {$evalue} AND evalue < ({$evalue} + 500) order by disorder asc, evalue asc");
$dsql->Execute();
$sort = 0 ;
$i++;
while($row = $dsql->GetArray())
{
$js .= "select2[". $i ."][{$sort}] = new Option(\"{$row['ename']}\", \"{$row['link']}\");\r\n";
$sort++;
}
}
$html = '
<form name="frm">
<div class="city_sch">
<h2 class="f13">选择里您最近的学习中心</h2>
<table width="190" height="128" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="51" align="center" valign="middle"><label>
<select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
<option selected>点击选择城市</option>
'. $options .'
</select>
</label></td>
</tr>
<tr>
<td height="22" align="center" valign="middle"><label>
<select name="s2" id="s2">
<option value="点击选择中心" selected>点击选择中心</option>
</select>
</label></td>
</tr>
<tr>
<td height="55" align="center" valign="middle"><label>