POST TIME:2017-11-13 00:47
DEDE有现成的二级联动管理,可以添加并生成二级联动的JS代码,使用起来非常方便。
如果要实现自己的效果,可能要对联动过程做一点开发。
下面的代码实例是在二级联动的过程中,添加了一个新的字段,以保存选项的值,并在前台根据JS的值做不同的事件。
- <?php
- require_once(dirname(__FILE__)."/../include/common.inc.php");
- //查询根节点
- $dsql->SetQuery("SELECTevalue,enamefrom`ddmx_sys_enum`whereegroup='center'ANDevalue%500=0orderbydisorderasc,evalueasc");
- $dsql->Execute();
- $enums=array();
- $sort=1;
- while($row=$dsql->GetArray())
- {
- $options.="<optionvalue=\&;{$sort}\&;>{$row['ename']}</option>\r\n";
- $enums[]=$row['evalue'];
- $sort++;
- }
- $count=count($enums);
- foreach($enumsas$i=>$evalue)
- {
- //添加了一个名为link的字段,保存选项的跳转链接
- $dsql->SetQuery("SELECTevalue,ename,linkfrom`ddmx_sys_enum`whereegroup='center'ANDevalue>{$evalue}ANDevalue<({$evalue}+500)orderbydisorderasc,evalueasc");
- $dsql->Execute();
- $sort=0;
- $i++;
- while($row=$dsql->GetArray())
- {
- $js.="select2[".$i."][{$sort}]=newOption(\&;{$row['ename']}\&;,\&;{$row['link']}\&;);\r\n";
- $sort++;
- }
- }
- $html='
- <formname="frm">
- <divclass="city_sch">
- <h2class="f13">选择里您最近的学习中心</h2>
- <tablewidth="190"height="128"border="0"align="center"cellpadding="0"cellspacing="0">
- <tr>
- <tdheight="51"align="center"valign="middle"><label>
- <selectname="s1"onChange="redirec(document.frm.s1.options.selectedIndex)">
- <optionselected>点击选择城市</option>
- '.$options.'
- </select>
- </label></td>
- </tr>
- <tr>
- <tdheight="22"align="center"valign="middle"><label>
- <selectname="s2"id="s2">
- <optionvalue="点击选择中心"selected>点击选择中心</option>
- </select>
- </label></td>
- </tr>
- <tr>
- <tdheight="55"align="center"valign="middle"><label>
- <inputtype="submit"name="button"id="button"value="马上提交"onclick="window.location=document.frm.s2.value;returnfalse;"/>
- </label></td>
- </tr>
- </table>
- </div>
- </form>
- <scriptlanguage="javascript">
- varselect1_len=document.frm.s1.options.length;
- varselect2=newArray(select1_len);
- for(i=0;i<select1_len;i++)
- {
- select2[i]=newArray();
- }
- select2[0][0]=newOption("请选择","");
- '.$js.'
- functionredirec(x)
- {
- vartemp=document.frm.s2;
- for(i=0;i<select2[x].length;i++)
- {
- temp.options[i]=newOption(select2[x][i].text,select2[x][i].value);
- }
- temp.options[0].selected=true;
- }
- </script>
- ';
- $html=addslashes(str_replace(array("\r\n",'"'),array('','\''),$html));
- echo"document.write(&;$html&;)";
- ?>
本文来源?1