我们在做完织梦自定义表单做城市二级三级联动后,前台页面显示没有问题,不过在后台获得的数据联动类型只显示枚举值,在网上找了很多方法都不行,其实都是只说了一半,没有说全,下面我就对这些方法汇总再给大家讲一下。
织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法:
1、找到dede/templets/diy_list.htm文件中(大约在41行):?
-
else if($fielddata[1]=='addon')
-
{
-
? ? $fields[$field] = "
-
}
?
在下面加入:
-
//联动类型显示修正开始
-
?
-
? ? ? ? ? ? else if($fielddata[1]=='stepselect')
-
? ? ? ? ? ? {
-
? ? ? ? ? ? ? ? $db->Execute('me',"SELECT * FROM `dede_stepselect` WHERE egroup='{$field}'");
-
? ? ? ? ? ? ? ? while($arr = $db->GetArray(me))
-
? ? ? ? ? ? ? ? {
-
? ? ? ? ? ? ? ? ? ? $egroup = $arr['egroup'];
-
? ? ? ? ? ? ? ? }
-
? ? ? ? ? ? ? ? $fields[$field] = Getenums("{$fields[$field]}",$egroup);
-
? ? ? ? ? ? }
-
?
-
//联动类型显示修正结束
?
?
在本文件中继续找到: {/dede:datalist}
在下面加入一下代码:
-
-
function Getenums($evalue = 0,$egroup)
-
{
-
? ? if (!isset($GLOBALS['em_' . $egroup . 's'])) {
-
? ? ? ? $cachefile = DEDEDATA . '/enums/' . $egroup . '.php';
-
? ? ? ? if (!file_exists($cachefile)) {
-
? ? ? ? ? ? require_once DEDEINC . '/enums.func.php';
-
? ? ? ? ? ? WriteEnumsCache();
-
? ? ? ? }
-
? ? ? ? if (!file_exists($cachefile)) {
-
? ? ? ? ? ? return '';
-
? ? ? ? } else {
-
? ? ? ? ? ? require_once $cachefile;
-
? ? ? ? }
-
? ? }
-
? ? if ($evalue >= 500) {
-
? ? ? ? if ($evalue % 500 == 0) {
-
? ? ? ? ? ? return isset($GLOBALS['em_' . $egroup . 's'][$evalue]) ? $GLOBALS['em_' . $egroup . 's'][$evalue] : '';
-
? ? ? ? } else {
-
? ? ? ? ? ? if (preg_match('#([0-9]{1,}).([0-9]{1,})#',$evalue,$matchs)) {
-
?
-
$esonvalue = $matchs[1];
-
$etopvalue = $esonvalue - $esonvalue % 500;
-
$esecvalue = preg_replace('/(?<=.)[0]+/','',$evalue);
-
?
-
$GLOBALS['em_' . $egroup . 's'][$etopvalue] = empty($GLOBALS['em_' . $egroup . 's'][$etopvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$etopvalue];
-
?
-
$GLOBALS['em_' . $egroup . 's'][$esonvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esonvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esonvalue];
-
?
-
$GLOBALS['em_' . $egroup . 's'][$esecvalue] = empty($GLOBALS['em_' . $egroup . 's'][$esecvalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$esecvalue];
-
?
-
return $GLOBALS['em_' . $egroup . 's'][$etopvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esonvalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$esecvalue];
-
? ? ? ? ? ? }
-
? ? ? ? ? ? else
-
? ? ? ? ? ? {
-
$elimit = $evalue % 500;
-
$erevalue = $evalue - $elimit;
-
$GLOBALS['em_' . $egroup . 's'][$erevalue] = empty($GLOBALS['em_' . $egroup . 's'][$erevalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$erevalue];
-
$GLOBALS['em_' . $egroup . 's'][$evalue] = empty($GLOBALS['em_' . $egroup . 's'][$evalue]) ? '' : $GLOBALS['em_' . $egroup . 's'][$evalue];
-
return $GLOBALS['em_' . $egroup . 's'][$erevalue] . ' - ' . $GLOBALS['em_' . $egroup . 's'][$evalue];
-
? ? ? ? ? ? }
-
? ? ? ? }
-
? ? }
-
}
-
?>
?
按照上面的方法修改完成后即可显示!
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|