我们在做完织梦自定义表单做城市二级三级联动后,前台页面显示没有问题,不过在后台获得的数据联动类型只显示枚举值,在网上找了很多方法都不行,其实都是只说了一半,没有说全,下面我就对这些方法汇总再给大家讲一下。
织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法:

1、找到dede/templets/diy_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. else if($fielddata[1]=='stepselect')
  3. {
  4. $db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE egroup='{$field}'");
  5. while($arr = $db->GetArray(me))
  6. {
  7. $egroup = $arr['egroup'];
  8. }
  9. $fields[$field] = Getenums("{$fields[$field]}",$egroup);
  10. }
  11. //联动类型显示修正结束
在本文件中继续找到: {/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. $esonvalue = $matchs[1];
  22. $etopvalue = $esonvalue-$esonvalue % 500;
  23. $esecvalue = preg_replace('/(?<=\.)[0]+/', '', $evalue);
  24. $GLOBALS['em_' . $egroup . 's'][$etopvalue] = empty($GLOBALS['em_' . $egroup . 's'][$etopvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$etopvalue];
  25. $GLOBALS['em_' . $egroup . 's'][$esonvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esonvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esonvalue];
  26. $GLOBALS['em_' . $egroup . 's'][$esecvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esecvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esecvalue];
  27. return $GLOBALS['em_' . $egroup . 's'][$etopvalue] . '-' . $GLOBALS['em_' . $egroup . 's'][$esonvalue] . '-' . $GLOBALS['em_' . $egroup . 's'][$esecvalue];
  28. }
  29. else
  30. {
  31. $elimit = $evalue % 500;
  32. $erevalue = $evalue-$elimit;
  33. $GLOBALS['em_' . $egroup . 's'][$erevalue] = empty($GLOBALS['em_' . $egroup . 's'][$erevalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$erevalue];
  34. $GLOBALS['em_' . $egroup . 's'][$evalue] = empty($GLOBALS['em_' . $egroup . 's'][$evalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$evalue];
  35. return $GLOBALS['em_' . $egroup . 's'][$erevalue] . '-' . $GLOBALS['em_' . $egroup . 's'][$evalue];
  36. }
  37. }
  38. }
  39. }
  40. ?>
按照上面的方法修改完成后即可显示!

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。