织梦侠
WWW.2L3.NET

织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法

我们在做完织梦自定义表单做城市二级三级联动后,前台页面显示没有问题,不过在后台获得的数据联动类型只显示枚举值,在网上找了很多方法都不行,其实都是只说了一半,没有说全,下面我就对这些方法汇总再给大家讲一下。
织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法:
1、找到dede/templets/ddiy_list.htm文件中(大约在41行): 
  1. else if($fielddata[1]=='addon')
  2. {
  3.     $fields[$field] = "<a href='{$fields[$field]}' target='_blank'><img src='images/channeladd.gif' border='0' /> 其它附件</a>";
  4. }
 
在下面加入:
  1. //联动类型显示修正开始
  2.  
  3.             else if($fielddata[1]=='stepselect')
  4.             {
  5.                 $db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE egroup='{$field}'");
  6.                 while($arr = $db->GetArray(me))
  7.                 {
  8.                     $egroup = $arr['egroup'];
  9.                 }
  10.                 $fields[$field] = Getenums("{$fields[$field]}",$egroup);
  11.             }
  12.  
  13. //联动类型显示修正结束
 
 
在本文件中继续找到: {/dede:datalist}
在下面加入一下代码:
  1. <?php
  2. function Getenums($evalue = 0, $egroup)
  3. {
  4.     if (!isset($GLOBALS['em_' . $egroup . 's'])) {
  5.         $cachefile = DEDEDATA . '/enums/' . $egroup . '.php';
  6.         if (!file_exists($cachefile)) {
  7.             require_once DEDEINC . '/enums.func.php';
  8.             WriteEnumsCache();
  9.         }
  10.         if (!file_exists($cachefile)) {
  11.             return '';
  12.         } else {
  13.             require_once $cachefile;
  14.         }
  15.     }
  16.     if ($evalue >= 500) {
  17.         if ($evalue % 500 == 0) {
  18.             return isset($GLOBALS['em_' . $egroup . 's'][$evalue]) ? $GLOBALS['em_' . $egroup . 's'][$evalue] : '';
  19.         } else {
  20.             if (preg_match('#([0-9]{1,})\\.([0-9]{1,})#', $evalue, $matchs)) {
  21.  
  22. $esonvalue = $matchs[1];
  23. $etopvalue = $esonvalue - $esonvalue % 500;
  24. $esecvalue = preg_replace('/(?<=\.)[0]+/', '', $evalue);
  25.  
  26. $GLOBALS['em_' . $egroup . 's'][$etopvalue] = empty($GLOBALS['em_' . $egroup . 's'][$etopvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$etopvalue];
  27.  
  28. $GLOBALS['em_' . $egroup . 's'][$esonvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esonvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esonvalue];
  29.  
  30. $GLOBALS['em_' . $egroup . 's'][$esecvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esecvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esecvalue];
  31.  
  32. return $GLOBALS['em_' . $egroup . 's'][$etopvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esonvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esecvalue];
  33.             }
  34.             else
  35.             {
  36. $elimit = $evalue % 500;
  37. $erevalue = $evalue - $elimit;
  38. $GLOBALS['em_' . $egroup . 's'][$erevalue] = empty($GLOBALS['em_' . $egroup . 's'][$erevalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$erevalue];
  39. $GLOBALS['em_' . $egroup . 's'][$evalue] = empty($GLOBALS['em_' . $egroup . 's'][$evalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$evalue];
  40. return $GLOBALS['em_' . $egroup . 's'][$erevalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$evalue];
  41.             }
  42.         }
  43.     }
  44. }
  45. ?>
 
按照上面的方法修改完成后即可显示!

转载请注明文章来自织梦侠[秩名]作者的-织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法
联系作者
取消
这个作者很懒什么也没留下!
打赏作者
取消

本文作者无偿奉献,就打赏给我们织梦侠吧!

扫码支付
扫码打赏,建议金额1-10元

打开支付宝扫一扫,即可进行扫码打赏哦

提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。