<tr style="display:none">
<td><?php echo $form->labelEx($model,'classcode'); ?></td>
<td>
<?php echo $form->textField($model,'classcode',array('size'=>60,'maxlength'=>100,'id'=>'new-base-ref-si-classification-classcode','disabled'=>'')); ?>
<?php echo $form->error($model,'classcode'); ?>
</td>
</tr>
<tr>
<td><?php echo $form->labelEx($model,'Classification'); ?></td>
<td>
<?php echo $form->textField($model,'Classification',array('size'=>60,'maxlength'=>100,'id'=>'new-base-ref-si-classification-Classification','disabled'=>'')); ?>
<?php echo $form->error($model,'Classification'); ?>
</td>
</tr>
我很难搞清楚要做什么请帮助我..我需要的是隐藏的类代码..当我输入一个字符串时,代码将获得第一个字母,然后它将被输入在点击提交按钮之前的类代码
例如 我在分类文本字段中输入了Office耗材 代码将获得O和S然后它将在提交之前输入到classcode texfield
答案 0 :(得分:0)
由于此字段未显示且根本无法接收用户输入,因此您无需在视图文件中使用该字段。
最佳方法是将类代码设置为不安全,以便无法大规模分配
然后在您的模型中提交后在服务器端计算:
public function rules()
{
return array(
// ... snip ... other rules here
array('classcode', 'unsafe'), // will not be massively assigned, prevents hacks
array('Classification', 'filterClasscode'), // custom validator
);
}
/**
* Custom filter to set classcode
* @param string $attribute field to set classcode from
*/
public function filterClasscode($attribute)
{
$this->classcode = '';
foreach (explode(' ', $this->$attribute) as $val) {
$this->classcode .= substr($val, 0, 1);
}
$this->classcode = strtoupper($this->classcode);
}