Php 在Yii中提交表单之前,在modal中输入用户信息
我有一个表单,在用户提交表单并验证通过后,我想在模式窗口中询问他的电子邮件和昵称。若用户填写并提交电子邮件和昵称,我想验证它并将其保存为新记录,或者获取现有记录的id,以防过去已经使用过电子邮件。如果验证不成功,用户应该能够在相同模式下更正值。如果一切正常,我想保存表单,包括创建用户id 我已经完成了表单保存和用户创建/查找过程。我只是不知道,如何把这些放在一起,在我上面描述的场景中工作。谁能解释一下,在Yii中应该如何做?我正在使用Yii 1.1.15和Yii助推器。谢谢。在Yii中,默认情况下,update.php和create.php视图中都使用了_form.php视图文件 所以,你可能需要做smth。类似:在update.php和create.php视图中插入带有模态的表单。 这些操作是不同的,所以逻辑是分开的;这是MVC的基本优势Php 在Yii中提交表单之前,在modal中输入用户信息,php,forms,yii,modal-dialog,Php,Forms,Yii,Modal Dialog,我有一个表单,在用户提交表单并验证通过后,我想在模式窗口中询问他的电子邮件和昵称。若用户填写并提交电子邮件和昵称,我想验证它并将其保存为新记录,或者获取现有记录的id,以防过去已经使用过电子邮件。如果验证不成功,用户应该能够在相同模式下更正值。如果一切正常,我想保存表单,包括创建用户id 我已经完成了表单保存和用户创建/查找过程。我只是不知道,如何把这些放在一起,在我上面描述的场景中工作。谁能解释一下,在Yii中应该如何做?我正在使用Yii 1.1.15和Yii助推器。谢谢。在Yii中,默认情况
public function actionCreate() {
$model = new Users;
if (isset($_POST['Users'])) {
$model->attributes = $_POST['Users'];
if ($model->save()) { // here in the save() method the valadation is included
// ONLY after we validate and successfully saved we go to update action
$this->redirect(array('update', 'id' => $model->id));
}
}
$this->render('create', array(
'model' => $model,
));
}
主要的是,当您尝试保存方法时,验证会自动进行。
因此,如果验证未成功,逻辑将返回到相同的操作,例如,创建视图中填充的字段,因为模型已经有数据传入:$model->attributes=$\u POST['Users']
如果验证成功,我们将进一步重定向。不需要ajax表单提交,即使是随意提交也适合这里
public function actionUpdate($id) {
$model = $this->loadModel($id);
if (isset($_POST['Users'])) {
$model->attributes = $_POST['Users'];
if ($model->save()) { // after saving EXISTING record we redirect to 'admin' action
$this->redirect(array('admin'));
}
}
$this->render('update', array(
'model' => $model,
));
}
viewsupdate/create中的表单按原始设计保留
唯一性验证在模型规则中很简单:
array('username, email', 'unique'),
电子邮件语法的电子邮件值如下所示:
array('email', 'email'),
所以解决方案应该是:-使用Ajax提交创建表单-如果验证正常,则填充模式-用户输入电子邮件和昵称下一步要做什么?如何验证电子邮件和昵称,然后一起提交所有数据?