php一种不增加字段的自定义表单实现
先看一下实现效果:
我们可以设置他的提示文字,字段,类型,默认值,参数,排序,是否在列表显示。当然我们还可以增加一些类似的展现方式,是否加亮等等。其类型有文本、下拉,单选,复选,多行文本等类型。看一下表结构:
Id不用说了,name就是表单提示文字,也就是比如姓名,性别等,qian和ziduan 是结合用的,为了就是好区分,用一个前缀和字段来组成自定义的字段标签,比较容易区分,type就是类型,value就是默认值,whcs就是参数,这个参数是默认在其类型是文本或多行文本才起作用,文本时第一个参数限制最大字节数,第二个限制长度。Role就是排序,yesno就是是否在前台显示。
代码就不用细说了吧,在设置这个自定义表单的时候比较简单,就是遍历一下,根据其type组合。
我给大家看一下这个地方的代码。
[php] view plaincopyprint? //获取参数配置信息
$system = $this->tmp_mod->getAllSystem();
if($system){
foreach($system as $key=>$val){
if($val['name']&&$val['ziduan']){
$zhu = '';
if($val['value']){
$value = @explode(',',$val['value']);
}
if($val['whcs']){
$whcs = @explode('$',$val['whcs']);
}
if(2==$val['type']){
$zhu = '';
}elseif(3==$val['type']){
foreach($value as $k=>$v){
$check='';
if('0'==$k){
$check = 'checked';
}
$zhu .=''.$v;
}
}elseif(4==$val['type']){
foreach($value as $m=>$n){
$zhu .=''.$n;
}
}
$biao[$key]['name'] = $val['name'];
switch ($val['type']){
case '1':$biao[$key]['value']='
maxlength="'.$whcs[0].'" style="width:'.$whcs[1].'px" value="'.$val['value'].'" />';break;
case '2':$biao[$key]['value']=$zhu;break;
case '3':$biao[$key]['value']=$zhu;break;
case '4':$biao[$key]['value']=$zhu;break;
case 5:$biao[$key]['value']='';break;
default:;
}
}
}
}