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