Heim > Backend-Entwicklung > PHP-Tutorial > Yii2 implementiert die ActiveForm-Ajax-Übermittlung

Yii2 implementiert die ActiveForm-Ajax-Übermittlung

不言
Freigeben: 2023-03-25 10:04:02
Original
1784 Leute haben es durchsucht

Dieser Artikel hauptsächlich In diesem Artikel werden die relevanten Informationen von Yii2 zur Implementierung der ActiveForm-Ajax-Übermittlung im Detail vorgestellt, die einen gewissen Referenzwert haben. Interessierte Freunde können auf

zurückgreifen. Bei der Durchführung von Projekten werden Sie immer auf die Ajax-Übermittlungsfunktion stoßen, insbesondere bei der Durchführung Im Hintergrund wird das Modell normalerweise automatisch generiert. Diese Funktion wird tatsächlich häufiger verwendet, solange Sie den Vorgang verstehen.

Formularteil

<?php $form = ActiveForm::begin([ 
  &#39;action&#39; => [&#39;save&#39;], //提交地址(*可省略*) 
  &#39;method&#39;=>&#39;post&#39;,  //提交方法(*可省略默认POST*) 
  &#39;id&#39; => &#39;form-save&#39;, //设置ID属性 
  &#39;options&#39; => [ 
    &#39;class&#39; => &#39;form-horizontal&#39;, //设置class属性 
  ], 
  &#39;enableAjaxValidation&#39; => true, 
  &#39;validationUrl&#39; => &#39;validate-view&#39;, 
]); ?> 
 
<?php echo $form->field($model,&#39;company_name&#39;, [&#39;inputOptions&#39; => [&#39;placeholder&#39;=>&#39;请输入商家名称&#39;,&#39;class&#39; => &#39;form-control&#39;], &#39;template&#39;=>&#39;<label for="inputCompanyName" class="col-sm-1 control-label"><span class="text-red">*</span> 商家名称</label><p class="col-md-8">{input}</p><label class="col-sm-3" for="inputError">{error}</label>&#39;])->textInput()?> 
 
<?=Html::submitButton(&#39;保存&#39;,[&#39;class&#39;=>&#39;btn btn-primary&#39;]); ?> 
 
<?php ActiveForm::end(); ?>
Nach dem Login kopieren

Unter ihnen: 'enableAjaxValidation' => true, muss festgelegt werden, um das Formular mitzuteilen Verwenden von Ajax Submit

Controller-Teil

Der Controller ist in zwei Teile unterteilt, einer dient der Überprüfung der Richtigkeit des Formulars und der andere dem Speichern

1 , Effektteil

public function actionValidateView() 
{ 
  $model = new model(); 
  $request = \Yii::$app->getRequest(); 
  if ($request->isPost && $model->load($request->post())) { 
    \Yii::$app->response->format = Response::FORMAT_JSON; 
    return ActiveForm::validate($model); 
  } 
}
Nach dem Login kopieren

2. Teil speichern

public function actionSave() 
{ 
  \Yii::$app->response->format = Response::FORMAT_JSON; 
  $params = Yii::$app->request->post(); 
  $model = $this->findModel($params[id]); 
 
  if (Yii::$app->request->isPost && $model->load($params)) { 
    return [&#39;success&#39; => $model->save()]; 
  } 
  else{ 
    return [&#39;code&#39;=>&#39;error&#39;]; 
  } 
}
Nach dem Login kopieren

Ajax-Übermittlung aus dem Formular

$(function(){ 
$(document).on(&#39;beforeSubmit&#39;, &#39;form#form-save&#39;, function () { 
    var form = $(this); 
    //返回错误的表单信息 
    if (form.find(&#39;.has-error&#39;).length) 
    { 
      return false; 
    } 
    //表单提交 
    $.ajax({ 
      url  : form.attr(&#39;action&#39;), 
      type  : &#39;post&#39;, 
      data  : form.serialize(), 
      success: function (response){ 
        if(response.success){ 
          alert(&#39;保存成功&#39;); 
          window.location.reload(); 
        } 
      }, 
      error : function (){ 
        alert(&#39;系统错误&#39;); 
        return false; 
      } 
    }); 
    return false; 
  }); 
});
Nach dem Login kopieren

Besonderer Hinweis, dass ich den Yii2-Administrator verwende Rahmenhintergrund, spezifischer Betriebsprozess Es hängt vom Testprojekt ab, aber der grundlegende Betriebsprozess ist der gleiche.

Verwandte Empfehlungen:

Yii2-Formularereignis Ajax-Übermittlungsmethode

Das obige ist der detaillierte Inhalt vonYii2 implementiert die ActiveForm-Ajax-Übermittlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage