>  기사  >  php教程  >  Yii2.0 ActiveForm 컴포넌트의 Ajax 제출 방법

Yii2.0 ActiveForm 컴포넌트의 Ajax 제출 방법

黄舟
黄舟원래의
2017-01-03 09:40:061410검색

ActiveForm은 어떻게 비동기적으로 제출되나요?

1. 먼저 뷰 레이어의 ActiveForm에서 다음 속성을 구성합니다

),           //此处为请求地址 Url用法查看手册
    'enableAjaxValidation' => true,
        'validationUrl' => Url::to(['post/validate']),     //数据异步校验
]);

2.配置好表单属性之后,在控制器中添加对应的方法

validateUrl对应的方法

//该方法是异步校验字段,输入框失去焦点之后自动会自动请求改地址
public function actionValidate(){
    $model = new PostModel();
    if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {        
        Yii::$app->response->format = Response::FORMAT_JSON;        
        return ActiveForm::validate($model);
    }
}

action对应的方法

//该方法是数据保存方法
public function actionSave()
{
    $model = new PostCatModel();
    if ($model->load(Yii::$app->request->post())) {
        Yii::$app->response->format = Response::FORMAT_JSON;
        return ['status' => $model->save()];
    }        
}

또한 제출된 js도 작성해야 합니다

[code=php;toolbar:false">//此处点击按钮提交数据的jquery
$('.btn').click(function () {
$.ajax({
url: "/post/save.html",
type: "POST",
dataType: "json",
data: $('form').serialize(),
success: function(Data) {
if(Data.status)
alert('保存成功');
else
alert('保存失败')
},
error: function() {
alert('网络错误!');
}
});
return false;
});

: actionSave에 해당 네임스페이스를 추가해야 하며 그렇지 않으면 오류가 보고됩니다

예: Response 및 ActiveForm

use yiiwebResponse;
use yiiootstrapActiveForm;[/code]

위는 비동기 제출 방법입니다. ActiveForm에 해당

위는 Yii2.0 ActiveForm 컴포넌트의 ajax 제출 방식입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.