我正在使用yii2为webapp。我被困在一个非常独特的地方&需要帮助
我使用javascript fadeIn & Fadeout效果来显示和隐藏表单。因此,为了实现这种效果,我必须将这三种表单放在一个视图中,并在单击按钮时调用相应的控制器(actionlogin、actionSignup和actionPasswordReset)。
我将所有三种表单参数的规则声明为验证所需的规则,但当我提交表单时,它没有进一步工作,因为它希望我填充其他两个表单字段,以及提交,因为其他两个表单也处于相同的视图中。
我还把我的javascript代码称为动画--在这里:
<script>
jQuery(document).ready(function() {
App.setPage("login"); //Set current page
App.init(); //Initialise plugins and elements
});
</script>
<script type="text/javascript">
function swapScreen(id) {
jQuery('.visible').removeClass('visible animated fadeInUp');
jQuery('#' + id).addClass('visible animated fadeInUp');
}
</script>任何人都知道怎么做
守则是:
<section id="login" class="visible">
<?php $form = ActiveForm::begin(['id' => 'login-form', 'options' => array('role' => 'form')]); ?>
<div class="form-group">
<?= $form->field($model, 'email_address',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($model, 'password', ['template' => "{label}\n<i class='fa fa-lock'></i>\n{input}\n{hint}\n{error}"])->passwordInput(); ?>
</div>
<div class="form-actions">
<?= $form->field($model, 'rememberMe',['template' => "{input} {label}"])->checkbox(); ?>
<?= Html::submitButton('Submit', ['class' => 'btn btn-danger', 'name' => 'login-button']) ?>
</div>
<?php $form = ActiveForm::end(); ?>我的注册页面是
<section id="register" class="visible">
<?php $form = ActiveForm::begin(['id' => 'signup-form', 'options' => array('role' => 'form')]); ?>
<div class="form-group">
<?= $form->field($model, 'full_name',['template' => "{label}\n<i class='fa fa-font'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($model, 'email',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($model, 'input_password',['template' => "{label}\n<i class='fa fa-lock'></i>\n{input}\n{hint}\n{error}"])->passwordInput() ?>
</div>
<div class="form-group">
<?= $form->field($model, 'input_confirm_password',['template' => "{label}\n<i class='fa fa-check-square-o'></i>\n{input}\n{hint}\n{error}"])->passwordInput() ?>
</div>
<div class="form-actions">
<?= $form->field($model, 'agreeTC',['template' => "{input}"])->checkbox(['class' => 'uniform']); ?>
<?= Html::submitButton('Signup', ['class' => 'btn btn-success', 'name' => 'signup-button']) ?>
</div>&我的请求重置代码是:
<section id="forgot" class="visible">
<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?>
<div class="form-group">
<?= $form->field($model, 'reset_email',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-actions">
<?= Html::submitButton('Send Me Reset Instructions', ['class' => 'btn btn-info', 'name' => 'reset-button']) ?>
</div>
<?php $form = ActiveForm::end(); ?>发布于 2014-12-29 10:13:04
您可以尝试这样做,使Controller actionYourview()、实例3模型并发送到视图。示例控制器
//your login,signup and passReset model dir
use frontend\models\login;
use frontend\models\signup;
use frontend\models\passReset;
//example if the Controller is Site (defaulOne)
class SiteController extends Controller
{
//your action
public function actionYourview(){
//1 Make your 3 models for separate
$loginModel = new login();
$signupModel = new signup();
$passResetModel = new passReset();
//this will solve your problem of the three forms as 'required'
if($loginModel->load(Yii::$app->request->post()) && $loginModel){ //if Login form is summit and validate
//do your login stuff
}else if($signupModel->load(Yii::$app->request->post())){ //if $signupModel form is summit
//do your signup stuff
}else if($passResetModel->load(Yii::$app->request->post())){ //if $passreset form is summit
// do yout pass reset stuff
}else{ // and else just render and make sure that you pass your 3 models
return $this->render('Yourview',[
'loginModelToView' =>$loginModel,
'signupModelToView' =>$signupModel,
'passResetModelToView' =>$passResetModel
]);
}
}
}视图只需将$model更改为各自的模型
登录
<section id="login" class="visible">
<?php $form = ActiveForm::begin(['id' => 'login-form', 'options' => array('role' => 'form')]); ?>
<div class="form-group">
<?= $form->field($loginModelToView, 'email_address',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($loginModelToView, 'password', ['template' => "{label}\n<i class='fa fa-lock'></i>\n{input}\n{hint}\n{error}"])->passwordInput(); ?>
</div>
<div class="form-actions">
<?= $form->field($loginModelToView, 'rememberMe',['template' => "{input} {label}"])->checkbox(); ?>
<?= Html::submitButton('Submit', ['class' => 'btn btn-danger', 'name' => 'login-button']) ?>
</div>
<?php $form = ActiveForm::end(); ?>注册
<section id="register" class="visible">
<?php $form = ActiveForm::begin(['id' => 'signup-form', 'options' => array('role' => 'form')]); ?>
<div class="form-group">
<?= $form->field($signupModelToView, 'full_name',['template' => "{label}\n<i class='fa fa-font'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($signupModelToView, 'email',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-group">
<?= $form->field($signupModelToView, 'input_password',['template' => "{label}\n<i class='fa fa-lock'></i>\n{input}\n{hint}\n{error}"])->passwordInput() ?>
</div>
<div class="form-group">
<?= $form->field($signupModelToView, 'input_confirm_password',['template' => "{label}\n<i class='fa fa-check-square-o'></i>\n{input}\n{hint}\n{error}"])->passwordInput() ?>
</div>
<div class="form-actions">
<?= $form->field($signupModelToView, 'agreeTC',['template' => "{input}"])->checkbox(['class' => 'uniform']); ?>
<?= Html::submitButton('Signup', ['class' => 'btn btn-success', 'name' => 'signup-button']) ?>
</div>最后,重置
<section id="forgot" class="visible">
<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?>
<div class="form-group">
<?= $form->field($passResetModelToView, 'reset_email',['template' => "{label}\n<i class='fa fa-envelope'></i>\n{input}\n{hint}\n{error}"]); ?>
</div>
<div class="form-actions">
<?= Html::submitButton('Send Me Reset Instructions', ['class' => 'btn btn-info', 'name' => 'reset-button']) ?>
</div>
<?php $form = ActiveForm::end(); ?>希望这就是你的样子。祝好运
https://stackoverflow.com/questions/27329306
复制相似问题