编程之家 52php.cn DedeCMS 新建模型checkbox多选框的问题,大家都碰上过吧,您解决了吗?我解决了,现在把解决/修改方法分享出来,希望可以帮助各位草根站长,感谢网提供这么好的站长交流平台,让我把教程发给大家,废话少说,入正文:
include/customfields.func.php 文件修改
搜索 $myformItem .= "<input type='checkbox' name='{$fieldname}[]' class='np' value='$v'>$v";
修改成 $myformItem .= ($i==0 ? "<input type='checkbox' name='$fieldname' class='np' value='$v' checked='checked'>$v" : "<input type='checkbox' name='$fieldname' class='np' value='$v'>$v"); 
$i++; 
搜索 $myformItem.= ($fvalue==$v ? "<input type='radio' name='$fieldname' class='np' value='$v' checked='checked' />$v" : "<input type='radio' name='$fieldname' class='np' value='$v' />$v"); 
} 
} 
$innertext = $myformItem; 
} 
下面加上
//checkbox
else if($ftype=='checkbox') 
{ 
if(is_array($items)) 
{ 
foreach($items as $v) 
{ 
$v = trim($v); 
if($v=='') continue; 
$myformItem.= ($fvalue==$v ? "<input type='checkbox' name='$fieldname' class='np' value='$v' checked='checked' />$v" : "<input type='checkbox' name='$fieldname' class='np' value='$v' />$v"); 
} 
} 
$innertext = $myformItem; 
} 
//////////////////////////////////////////////////////////////////////////////////////
打开 dede/inc/inc_archives_all.php 文件
搜索 else 
{ 
$myformItem .= "<input type='radio' name='$fieldname' class='np' value='$v'>$v"; 
} 
} 
} 
$formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem); 
$formitem = str_replace("~form~",$myformItem,$formitem); 
return $formitem; 
} 
在下面加上
else if($ctag->GetAtt("type")=='checkbox') //checkbox 类型 
{ 
$myformItem = ''; 
$items = explode(',',$innertext); 
foreach($items as $v) 
{ 
$v = trim($v); 
$i = 0; 
if($v!='') 
{ 
if($i==0) 
{ 
$myformItem .= "<input type='checkbox' name='$fieldname' class='np' value='$v' checked='checked'>$v"; 
} 
else 
{ 
$myformItem .= "<input type='checkbox' name='$fieldname' class='np' value='$v'>$v"; 
} 
} 
} 
$formitem = str_replace("~name~",$formitem); 
return $formitem; 
} 
搜索 else if($dtype=="float") 
{ 
$dvalue = trim(ereg_replace("[^0-9.]","",$dvalue)); 
if($dvalue=="") 
{ 
$dvalue = 0; 
} 
return $dvalue; 
} 
在下面加上
// checkbox 类型 
else if($dtype=="checkbox") 
{ 
if($dvalue=="") 
{ 
$dvalue = "<input type='checkbox' name='$fieldname' class='np' value='$v' checked='checked'>$v"; 
} 
return $dvalue; 
} 
搜索 else if($ctag->GetAtt("type")=='radio') 
{ 
$myformItem = ''; 
$items = explode(',$innertext); 
foreach($items as $v) 
{ 
$v = trim($v); 
if($v!='') 
{ 
if($fvalue==$v) 
{ 
$myformItem.= "<input type='radio' name='$fieldname' class='np' value='$v' checked>$v"; 
} 
else 
{ 
$myformItem.= "<input type='radio' name='$fieldname' class='np' value='$v'>$v"; 
} 
} 
} 
$formitem = str_replace("~name~",$formitem); 
return $formitem; 
} 
在下面加上
else if($ctag->GetAtt("type")=='checkbox') //checkbox 类型 
{ 
$myformItem = ''; 
$items = explode(',$formitem); 
return $formitem; 
} 
搜索 else if($ctag->GetAtt("type")=="multitext") 
{ 
$innertext = "<textarea name='$fieldname' id='$fieldname' style='width:100%;height:80'>$fvalue</textarea>"; 
$formitem = str_replace("~name~",$innertext,$formitem); 
return $formitem; 
} 
在下面加上
// checkbox 类型 
else if($formitem=="checkbox") 
{ 
if($formitem=="") 
{ 
$formitem = "<input type='checkbox' name='$fieldname' class='np' value='$v' checked='checked'>$v"; 
} 
return $formitem;
}
////////////////////////////////////////////////////
我这程序改的文件太多,有点乱,所以你修改的时候一定要看清楚,再修改,反正我这里可以用,你要是不行,你仔细检查,别忘了做好备份!