यह आपका रूप है। मैं सत्यापन और बचत के लिए विभिन्न कार्यों का उपयोग करना पसंद करता हूं। आप उन्हें एक विधि में शामिल कर सकते हैं।
<?php $form = \yii\widgets\ActiveForm::begin([
'id' => 'my-form-id',
'action' => 'save-url',
'enableAjaxValidation' => true,
'validationUrl' => 'validation-rul',
]); ?>
<?= $form->field($model, 'email')->textInput(); ?>
<?= Html::submitButton('Submit'); ?>
<?php $form->end(); ?>
सत्यापन कार्रवाई में आपको लिखना चाहिए। यह आपके फॉर्म को मान्य करता है और ग्राहक को त्रुटियों की सूची देता है। :
public function actionValidate()
{
$model = new MyModel();
$request = \Yii::$app->getRequest();
if ($request->isPost && $model->load($request->post())) {
\Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
और यह कार्रवाई को बचाता है। सुरक्षा के लिए मान्य इनपुट डेटा में:
public function actionSave()
{
$model = new MyModel();
$request = \Yii::$app->getRequest();
if ($request->isPost && $model->load($request->post())) {
\Yii::$app->response->format = Response::FORMAT_JSON;
return ['success' => $model->save()];
}
return $this->renderAjax('registration', [
'model' => $model,
]);
}
यह कोड आपके फॉर्म को क्रिया Validate() और मान्य करेगा। सबमिट करने से पहले AJAX उपयोग के माध्यम से अपना फॉर्म जमा करने के लिए। आपकी जावास्क्रिप्ट फ़ाइल में लिखें:
$(document).on("beforeSubmit", "#my-form-id", function() {
// send data to actionSave by ajax request.
return false; // Cancel form submitting.
});
यह सब कुछ है।
स्रोत
2015-09-03 13:45:49
वास्तव में, यह सिर्फ तुम क्या Yii पहले से ही ActiveForm साथ प्रदान करता है - सर्वर से डेटा भेजने से पहले ग्राहक पर स्वत: सत्यापन के लिए जावास्क्रिप्ट भी शामिल है। – robsch
@robsch यह AJAX के साथ फ़ॉर्म सबमिट नहीं करता है जो उपयोगकर्ता पूछ रहा है। – TheStoryCoder