Ajax 使用renderPartial在一个页面上管理多个表单

Ajax 使用renderPartial在一个页面上管理多个表单,ajax,widget,yii,renderpartial,Ajax,Widget,Yii,Renderpartial,我想在一个页面上显示多个表单,如第一次显示登录表单、验证/验证后隐藏登录表单并显示另一个表单,该表单将包含用户的账单/发货信息,如果新客户在同一页面上显示注册表单并在成功注册后,使其登录并隐藏注册表单并呈现账单/发货表单。与信用卡信息等其他表单一样,我们希望使用基于ajax的验证和呈现 我这样做是行不通的 if(Yii::app()->request->isAjaxRequest) { if(isset($_POST['Customers']))

我想在一个页面上显示多个表单,如第一次显示登录表单、验证/验证后隐藏登录表单并显示另一个表单,该表单将包含用户的账单/发货信息,如果新客户在同一页面上显示注册表单并在成功注册后,使其登录并隐藏注册表单并呈现账单/发货表单。与信用卡信息等其他表单一样,我们希望使用基于ajax的验证和呈现

我这样做是行不通的

if(Yii::app()->request->isAjaxRequest)
    {
        if(isset($_POST['Customers']))
        {
            if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
            {
                if(!$model->validate())
                {
                    echo CActiveForm::validate($model);
                    Yii::app()->end();
                }else{
                    $this->renderBillingShippingForm();
                }

            }

            if(isset($_POST['ajax']) && $_POST['ajax']==='signup-form')
            {
                if(!$model->validate())
                {
                    echo CActiveForm::validate($model);
                    Yii::app()->end();
                }else{
                    $this->customerSignup($model);
                }


            }


        }
这里是函数

public function customerSignup($model)
{
    $model->attributes=$_POST['Customers'];
    if($model->validate())
    {
        $model->password=encrypting($model->password);
        $model->email=$model->email;

        if ($model->save())
        {
            $this->renderBillingShippingForm();
        }
    }
}
这是另一个

function renderBillingShippingForm()
{
    $billingShippingInfo = new CustomerBillingShippingInfo;
    $this->renderPartial('billing_shipping_form', array("billingShippingInfo"=>$billingShippingInfo));
    Yii::app()->end();
}
有什么想法吗


提前感谢

您可以创建两个小部件-用于登录表单和计费。在视图中,文件呈现所需的小部件取决于某些参数(如页面状态)。参数可以通过ajax或请求传递