如何使用HTML标记创建yii表单而不使用CAactive和CHtml?

时间:2013-12-04 19:07:09

标签: php yii

我是Yii的新手,并使用纯HTML代码创建了一个表单

这里TesterUserReg是不同的控制器..

<form id="signup" action="/xyzApp/index.php?r=testerUserReg/create" method="post" accept-charser="UTF-8">
        <fieldset>
            <div id='solidLine'>

                <p>
                    <label for="name">Name</label><br>
                    <input id="name" name="username" type="text" class="validate[required,custom[onlyLetter],length[0,100]] text" value="" placeholder="your full name"/>
                </p>

                <p>
                    <label for="email">Email</label><br>
                    <input id="email" name="email" type="text" class="validate[required,custom[email]] text" value="" placeholder="hello@testunity.com"/>
                </p>

................. ...............                      

                        注册                      

并使用jQuery验证引擎插件验证表单..

我的控制器看起来像

public function actionCreate()
    {
        $model=new TesterUserReg;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['TesterUserReg']))
        {
            $model->attributes=$_POST['TesterUserReg'];
                        $request = Yii::app()->getRequest();
                        //$model->ut = $request->getPost('username');
                        $model->ut_pwd = $request->getPost('password');
                        $model->ut_email_id = $request->getPost('email');
                        $model->ut_user_id = md5(uniqid(rand(), true));
                        $model->ut_reg_date = new DateTime();
                        if($model->save()){}
                //$this->redirect(array('view','id'=>$model->ut_user_id));
        }

        $this->render('create',array(
            'model'=>$model,
        ));
    }

当我提交表单时,它会呈现给Yii默认登录页面。它不叫这个控制器。 请帮我解决这个问题。

感谢。

2 个答案:

答案 0 :(得分:1)

关于您的表单是否使用是否使用CHtml或CActiveForm。这是您的控制器问题,请检查您的控制器内的过滤器和accessRules。

如果您不确定该怎么做,可以暂时将其删除,并测试您是否仍然遇到此问题。

  

了解详情?请查看以下链接。有些人确实建议读者在他们弄脏之前通读指南。 Yii团队确实提供了很好的文档。一旦您遇到编码问题,您可以查看指南或课堂参考,然后您就可以找到所需内容。   http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#filter

快乐编码^ _ ^

答案 1 :(得分:1)

您的问题出现在您的表单中,因为在您的控制器中,您正试图获取

 if(isset($_POST['TesterUserReg']))

哪种形式永远不会来自您的表单,然后如何在您的控制器中处理您的表单。

那么你要做的就是改变我提到的所有表单输入的名称

 <form id="signup" action="/xyzApp/index.php?r=testerUserReg/create" method="post" accept-charser="UTF-8">
    <fieldset>
        <div id='solidLine'>

            <p>
                <label for="name">Name</label><br>
                <input id="name" name="TesterUserReg[username]" type="text" class="validate[required,custom[onlyLetter],length[0,100]] text" value="" placeholder="your full name"/>
            </p>

            <p>
                <label for="email">Email</label><br>
                <input id="email" name="TesterUserReg[email]" type="text" class="validate[required,custom[email]] text" value="" placeholder="hello@testunity.com"/>
            </p>

通过这种方式更改表单输入名称您的控制器条件

 if(isset($_POST['TesterUserReg']))

将会满意,您的进一步过程将会继续。

快乐编码:)