求助:自动生成ADD、UPDATE页面

浏览:564 发布日期:2014/06/24 分类:求助交流
我设计了一个数据表自动化的ADD、UPDATE页面生成程序,以便快速开发使用。现在有点问题,请高手指教:

基本思路是:
将数据库内所有的表格结构都单独存在一个叫filedinfo的表里,这个表主要用来定义中文字段名、显示长度、是否显示、数据类型等页面属性。然后,各表做插入、更新时,都从这个表里读数据,用来呈现页面。Filedinfo表(前缀thr_)结构如下:

CREATE TABLE IF NOT EXISTS `thr_fieldinfo` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TABLENAME` varchar(255) NOT NULL,
`FIELDNAME` varchar(255) NOT NULL,
`FIELDTYPE` varchar(32) NOT NULL,
`LENGTH` int(11) NOT NULL,
`ALLOWNULL` tinyint(1) NOT NULL,
`ENGLISHNAME` varchar(255) NOT NULL,
`CHINESENAME` varchar(255) NOT NULL,
`DISPLAYORNOT` tinyint(1) NOT NULL,
`DISPLAYORDER` int(11) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=75 ;


在控制器里的update方法如下(以更新employee表为例):
public function update() {
$Fieldinfo1 = M('fieldinfo');
$Fieldinfo2 = M('employee');
$this->data1=$Fieldinfo1->where('TABLENAME="thr_employee"')->select();
$this->data2=$Fieldinfo2->where('EMPLOYEECODE="1"')->select();
$this->display();
}

视图文件如下(省略部分代码):
<FORM method="post" action="__URL__/UpdateAction" onsubmit="return checkForm();">
<table>
<volist name="data2" id="vo2">
<volist name="data1" id="vo1">
<if condition="$vo1[DISPLAYORNOT] eq 1">
<tr>
<td >{$vo1.CHINESENAME}</td>
<td >
<if condition="$vo1[FIELDTYPE] eq 'varchar'">
<INPUT type="text" name="{$vo1.FIELDNAME}" size="{$vo1.LENGTH}" value="{$vo2[vo1.FIELDNAME]}">
<elseif condition="$vo1[FIELDTYPE] eq 'date'"/>
<INPUT type="text" id="datepicker{$vo.ID}" name="{$vo1.FIELDNAME}" size="{$vo1.LENGTH}" value="{$vo2[vo1.FIELDNAME]}">
<elseif condition="$vo1[FIELDTYPE] eq 'int'"/>
<INPUT type="text" name="{$vo1.FIELDNAME}" size="10" value="{$vo2[vo1.FIELDNAME]}">
<elseif condition="$vo1[FIELDTYPE] eq 'tinyint'"/>
<INPUT type="text" name="{$vo1.FIELDNAME}" size="6" value="{$vo2[vo1.FIELDNAME]}">
<elseif condition="$vo1[FIELDTYPE] eq 'float'"/>
<INPUT type="text" name="{$vo1.FIELDNAME}" size="10" value="{$vo2[vo1.FIELDNAME]}">
</if>

<if condition="$vo1[ALLOWNULL] eq '0'">*</if>
</td>
</tr>
</if>
</volist>
</volist>
<tr>
<td></td>
<td><input type="submit" id='button' value="提交"></td>
</tr>
</table>
</FORM>

其他测试都正常,问题在于,我如何实现通过vo1.FIELDNAME具体值来显示vo2相应的字段值。
比如说:
在vo1第一个循环的时候,vo1.FIELDNAME的值是“GENDER”,那我紧接着要在input的value属性里显示vo2. GENDER的值
在vo1第二个循环的时候,vo1.FIELDNAME的值是“IDCARD”, 那我紧接着要在input的value属性里显示vo2. IDCARD的值
{$vo2[vo1.FIELDNAME]}这样写好像不行呀!
最佳答案
评论( 相关
后面还有条评论,点击查看>>