ホームページ  >  記事  >  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 中国語 Web サイト (www.php.cn)!


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。