織夢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> <input type="submit" name="button" id="button" value="馬上提交" onclick="window.location=document.frm.s2.value;return false;"/> </label></td> </tr> </table> </div> </form> <script language="javascript"> var select1_len = document.frm.s1.options.length; var select2 = new Array(select1_len); for (i=0; i<select1_len; i++) { select2[i] = new Array(); } select2[0][0] = new Option("請選擇", " "); '. $js .' function redirec(x) { var temp = document.frm.s2; for (i=0;i<select2[x].length;i++) { temp.options[i]=new Option(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 /")"; ?>以上就是織夢DEDECMS+Js實現自定義二級聯動的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。新聞熱點
疑難解答