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