سیروزاول-۳ Ajax validation yii2
جمعه, ۱۰ شهریور ۱۳۹۶، ۰۱:۳۶ ق.ظ
ایجکس ولیدیشن برای زمانی است که می خواهیم مقدار وارد شده در فرم را اعتبار سنجی کنیم مثلا عنوان در فرم نباید با عنوان های قبلی برابر باشد برای این کار باید از سمت سرور پرس و جو صورت بگیرد برای این کار از ایجکس ولیدیشن استفاده میکنیم.
ابتدا در مدل مشخص می کنیم که مقدار عنوان باید یکتا باشد
[['title'], 'unique'],
<?= $form->field($model, 'title', ['enableAjaxValidation' => true])
->textInput(['maxlength' => true]) ?>
->textInput(['maxlength' => true]) ?>
و در شروع فرم آدرس اکشنی که مقدار فرستاده شده از ایجکس را هندل می کند را آدرس دهی می کنیم
<?php $form = ActiveForm::begin([
'validationUrl' => 'validate'
]); ?>
'validationUrl' => 'validate'
]); ?>
و نهایتا اکشنی که در کنترلر قرار دارد و اعتبار سنجی را انجام می دهد
public function actionValidate()
{
$model = new Todo();
if (Yii::$app->request->isAjax &&
$model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
{
$model = new Todo();
if (Yii::$app->request->isAjax &&
$model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
کد کامل Validation Ajax
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.