2012-02-28 98 views
1

我创造这样一种形式:Yii的表单元素默认值

$model = new RequestForm; 
$form = new CForm('application.views.site.requestForm', $model); 

我保存表单数据到一个会话,因此,如果用户访问那里有类似形式的其他一些网页,输入已经填满了。 requestForm.php看起来是这样的:

return array(

'showErrorSummary' => false, 

'elements' => array(
    'first_name' => array(
    'type' => 'text', 
    'class' => 'standard-input', 
    'value' => Yii::app()->requestFormValues->first_name, 
), 
) 

现在,当我提交表单出现问题。假设我修改了名字 - 它从会话中获取数据,而不是来自输入的POST数据。我如何验证requestForm.phprequestFormValues组件是否已提交表单,以便我不指定默认值?

亲切的问候,

玛丽安

+0

不知道这是否会解决你的问题,但我认为''setFlash'和'getFlash'可以帮助你。当您发布表单时,将变量设置为flash消息并在需要时调用。顺便说一句,检查出这个进一步的信息:http://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages/ – 2012-02-28 15:35:14

回答

1

使用默认值,只有当POST设置。否则,使用默认

$RequestForm = new RequestForm; 
if (isset($_POST['RequestForm'])) { 
    $RequestForm->attributes = $_POST['RequestForm']; 
    // validate, save or more.. 
} 
else { 
    $RequestForm->attributes = readFromSession(); //return array 
} 

这是帮助你吗?

+0

我做了类似的东西:) – Marian 2012-02-29 11:52:19