我希望在一个页面上显示多个表单,例如首次显示登录表单,验证/身份验证后隐藏登录表单并显示另一个表单,该表单将记录用户的帐单/发货信息,以及新客户是否在同一页面上显示注册表单页面和成功注册后,使其登录并隐藏注册表单并呈现结算/运输表单。与信用卡信息等其他形式一样,希望使用基于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();
}
任何想法
提前致谢
答案 0 :(得分:0)
您可以创建两个小部件 - 用于登录表单和结算。在视图文件渲染中,必要的小部件取决于某些参数(如页面状态)。参数可以通过ajax或request传递。