主页 > 网站建设 > 建站知识 > DEDECMS+Js实现自定义二级联动

DEDECMS+Js实现自定义二级联动

POST TIME:2017-11-13 00:47

DEDE有现成的二级联动管理,可以添加并生成二级联动的JS代码,使用起来非常方便。
如果要实现自己的效果,可能要对联动过程做一点开发。

下面的代码实例是在二级联动的过程中,添加了一个新的字段,以保存选项的值,并在前台根据JS的值做不同的事件。

  1. <?php
  2. require_once(dirname(__FILE__)."/../include/common.inc.php");
  3. //查询根节点
  4. $dsql->SetQuery("SELECTevalue,enamefrom`ddmx_sys_enum`whereegroup='center'ANDevalue%500=0orderbydisorderasc,evalueasc");
  5. $dsql->Execute();
  6. $enums=array();
  7. $sort=1;
  8. while($row=$dsql->GetArray())
  9. {
  10. $options.="<optionvalue=\&;{$sort}\&;>{$row['ename']}</option>\r\n";
  11. $enums[]=$row['evalue'];
  12. $sort++;
  13. }
  14. $count=count($enums);
  15. foreach($enumsas$i=>$evalue)
  16. {
  17. //添加了一个名为link的字段,保存选项的跳转链接
  18. $dsql->SetQuery("SELECTevalue,ename,linkfrom`ddmx_sys_enum`whereegroup='center'ANDevalue>{$evalue}ANDevalue<({$evalue}+500)orderbydisorderasc,evalueasc");
  19. $dsql->Execute();
  20. $sort=0;
  21. $i++;
  22. while($row=$dsql->GetArray())
  23. {
  24. $js.="select2[".$i."][{$sort}]=newOption(\&;{$row['ename']}\&;,\&;{$row['link']}\&;);\r\n";
  25. $sort++;
  26. }
  27. }
  28. $html='
  29. <formname="frm">
  30. <divclass="city_sch">
  31. <h2class="f13">选择里您最近的学习中心</h2>
  32. <tablewidth="190"height="128"border="0"align="center"cellpadding="0"cellspacing="0">
  33. <tr>
  34. <tdheight="51"align="center"valign="middle"><label>
  35. <selectname="s1"onChange="redirec(document.frm.s1.options.selectedIndex)">
  36. <optionselected>点击选择城市</option>
  37. '.$options.'
  38. </select>
  39. </label></td>
  40. </tr>
  41. <tr>
  42. <tdheight="22"align="center"valign="middle"><label>
  43. <selectname="s2"id="s2">
  44. <optionvalue="点击选择中心"selected>点击选择中心</option>
  45. </select>
  46. </label></td>
  47. </tr>
  48. <tr>
  49. <tdheight="55"align="center"valign="middle"><label>
  50. <inputtype="submit"name="button"id="button"value="马上提交"onclick="window.location=document.frm.s2.value;returnfalse;"/>
  51. </label></td>
  52. </tr>
  53. </table>
  54. </div>
  55. </form>
  56. <scriptlanguage="javascript">
  57. varselect1_len=document.frm.s1.options.length;
  58. varselect2=newArray(select1_len);
  59. for(i=0;i<select1_len;i++)
  60. {
  61. select2[i]=newArray();
  62. }
  63. select2[0][0]=newOption("请选择","");
  64. '.$js.'
  65. functionredirec(x)
  66. {
  67. vartemp=document.frm.s2;
  68. for(i=0;i<select2[x].length;i++)
  69. {
  70. temp.options[i]=newOption(select2[x][i].text,select2[x][i].value);
  71. }
  72. temp.options[0].selected=true;
  73. }
  74. </script>
  75. ';
  76. $html=addslashes(str_replace(array("\r\n",'"'),array('','\''),$html));
  77. echo"document.write(&;$html&;)";
  78. ?>

本文来源?1



收缩
  • 微信客服
  • 微信二维码
  • 电话咨询

  • 400-1100-266