表格不提交

时间:2013-11-06 07:33:29

标签: php yii

我不明白表格提交是如何工作的。请帮助我...

public function actionHome() {
    $model = new LoginForm;
    $form = new CForm('application.views.website.formV', $model);
    //protected/views/website/formV.php. 

    if($form->submitted('login') && $form->validate()){
        echo 'nig';
        $this->redirect(array('website/send'));
    }
    else {
        $this->render('login', array('form'=>$form));
    }

    echo '<h1>Hello</h1>';
    echo '<div class="form">';
    echo $form;
    echo '</div>';
}

FormV.php

return array(
    'title'=>'Label title',

    'elements'=>array(
        'username'=>array(
            'type'=>'text',
            'maxlength'=>32,
        ),


        '<div class="djada"></div>'

        ,
        /*
        'password'=>array(
            'type'=>'password',
            'maxlength'=>10,
        ),
         * 
         */
        'rememberMe'=>array(
            'type'=>'checkbox',
        )
    ),

    'buttons'=>array(
        'login'=>array(
            'type'=>'submit',
            'label'=>'Enter',
        ),
    ),
);

当我点击验证好但没有重定向到'website / send'...

另一个问题是为什么将模型传输到新的CForm ...为什么这样的方法呢? 如何使用它?

1 个答案:

答案 0 :(得分:0)

如果在models目录中检查LoginForm类,您会发现它包含2个必需的公共变量。必需的变量是用户名和密码。由于您在表单构建器中注释掉了密码元素,因此不会传递以下if语句。

if($form->submitted('login') && $form->validate()){

您被重定向到新表单的原因是因为它以这种方式编码。一旦提交()和validate()函数返回true,您将被重定向到网站/发送操作而不是新的登录表单。

有关CForm类的更多信息,请阅读http://www.yiiframework.com/doc/guide/1.1/en/form.builder