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

DEDE有现成的二级联动管理,可以添加并生成二级联动的JS代码,使用起来非常方便。 如果要实现自己的效果,可能要对联动过程做一点开发。 下面的代码实例是在二级联动的过程中,添加了一个新的字段,以保存选项的值,并在前台根据JS的值做不同的事件。 ?php r

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

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

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

本文来源:4wei原文链接

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

dedecms织梦无需登录注册可下单购买的修改,首先找到/plus/carbuaction.php文件,找到如下代码: //确认用户登录信息if($cfg_ml-IsLogin()){ $userid = $cfg_ml-M_ID;}else{ $username = trim($username); $password = trim($password); if(empty($username)
用过织梦dedecms的人都知道,织梦会员系统相当强大,跟论坛程序差不多,对于使用会员系统的人来说,织梦系统足够用的了,但是,有时候,织梦系统很多的地方又不是我们所希望,或都说,有的地方不适合我们使用,这时候就要对织梦会员系统进行二次开发,所以,
我们在用到织梦dedecms的会员功能时候,注册页面的注册项需要增加,比如想多加一个手机号的字段,需要怎么操作呢?下面我们以增加一个手机号的字段为例子 1、找到网站目录下的/member/templets/reg-new.htm,在合适位置增加一行表单,代码如下: lispan手机
SQL语句中,有统计的函数,我们可以通过在织梦中使用SQL语句统计的方法,在列表页内显示该栏目共有多少篇文章。这样做的好处是,有助于提升用 户体验。比如说我一个文章列表下面有10篇文章,就自动统计出10篇,到20篇的时候自动统计成20篇。这样用户对网站的
我们在做 织梦模板 开发时,有时需要在artlist 和list标签中调用出图集中的图片,同时可以自定调用几张图片。跟版网整理了个一个这样功能的自定义函数。调用后效果如下: dedecms织梦artlist和list标签调用图集图片实现方法 函数代码 请将代码加入到 /includ
json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php。 织梦本身是自带json标签的,调用方法: {dede:json url=http://yoursite/json.php cache=300