【问题标题】:Manage multiple forms on one page using renderPartial使用 renderPartial 在一个页面上管理多个表单
【发布时间】:2011-06-16 09:47:31
【问题描述】:

我想在一个页面上显示多个表单,例如首先显示登录表单,在验证/身份验证后隐藏登录表单并显示另一个表单,该表单将获取用户的账单/运输信息,如果新客户在同一页面上显示注册表单页面和成功注册后,使其登录并隐藏注册表并呈现计费/运输表单。和信用卡信息等其他表单一样,想要使用基于 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 widget yii renderpartial


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2011-08-16
      • 2015-01-30
      • 2012-06-11
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      相关资源
      最近更新 更多