gpt4 book ai didi

ajax - Yii 框架中是否有任何内置方式可以启用 AJAX 表单提交?

转载 作者:行者123 更新时间:2023-12-01 12:57:42 25 4
gpt4 key购买 nike

CustomerController 中,我有 create 操作:

public function actionCreate() {
$model = new Customer;

$this->performAjaxValidation($model, 'customer-form');

//only support ajax saving
if (isset($_POST['Customer']) && Yii::app()->getRequest()->getIsAjaxRequest()) {
$model->setAttributes($_POST['Customer']);
$saveSuccess = $model->save();
if ($saveSuccess) {
//should echo a success message
}
else {
//should echo error messages
}

Yii::app()->end();
}


$this->render('create', array('customer' => $model));
}

在 View 中,我正在使用 CActiveform:

  $form = $this->beginWidget('CActiveForm', array(
'id' => 'customer-form',
'enableAjaxValidation' => true,
'clientOptions'=>array(
'validateOnSubmit'=>false
)
)
);

如您所见,我将 enableAjaxValidation 设置为 true,但我将客户端选项 validateOnSubmit 设置为 false。

如果我将它设置为true,当表单提交时,它会首先向服务器发送一个AJAX POST请求,然后服务器将以JSON格式返回错误信息(如果有的话),CActiveForm将在 View 中自动显示错误摘要并阻止表单提交。

如果没有发现错误,表单将执行第二个 POST 请求(非 AJAX)并实际提交表单。

但这不是我追求的行为。

理想情况下,我希望有一个单个 AJAX POST 请求,这样当表单提交时,服务器将返回成功或错误消息,CActiveForm 将自动显示它们。

这是 Yii 中内置的东西还是我必须编写自己的代码来执行此操作?

最佳答案

要执行 ajax 提交,您需要将常用的 CHtml::submitButton() 替换为 ajaxSubmitButton()。在这里查看:http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxSubmitButton-detail

关于ajax - Yii 框架中是否有任何内置方式可以启用 AJAX 表单提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com