2017-02-27 56 views
0

鑑於我有一個表格:Yii2成功模式窗口

<?php $form = ActiveForm::begin(); ?> 
    <?= $form->field($model, 'name')->textInput(['maxlength' => true, 'placeholder' => 'Name'])->label(false) ?> 
    <?= $form->field($model, 'phone')->textInput(['maxlength' => true, 'placeholder' => 'Phone'])->label(false) ?> 

    <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
<?php ActiveForm::end(); ?> 

控制器是:

if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     \Yii::$app->session->setFlash('success', 'Created'); 
    } 
return $this->redirect(Yii::$app->request->referrer); 

然後在視圖中,我把一個模式:

<?php if (Yii::$app->session->hasFlash('success')) :?> 
    <!-- <div class="container"> 
     <?= Yii::$app->session->getFlash('success', null, true) ?> 
    </div> --> 
    <div class="modal hide fade" id="myModal"> 
     <div class="modal-header"> 
      <a class="close" data-dismiss="modal">×</a> 
      <h3>Modal header</h3> 
     </div> 
     <div class="modal-body"> 
      <p><?= Yii::$app->session->getFlash('success', null, true) ?></p> 
     </div> 
     <div class="modal-footer"> 
      <a href="#" class="btn">Close</a> 
      <a href="#" class="btn btn-primary">Save changes</a> 
     </div> 
    </div> 
<?php endif ;?> 

和JS代碼:

$(window).load(function(){ 
     $('#myModal').modal('show'); 
    }); 

我想點擊提交按鈕後打開成功模式窗口。但現在沒有任何反應。只需重新加載頁面。我想要怎麼做?並請解釋如何做到這一點,而無需重新加載頁面。

回答

0

這可能是沒有最好的decidion,但我用類myAjaxModalClass和一個簡單的JS代碼,即通過AJAX與該類提交所有形式和解析JSON結果:

{結果:0,數據:'新模式內容'}

這使我可以加載與驗證錯誤的形式沒有頁面重新加載。您也可以添加您的結果狀態以提交重定向。示例:

{result:2,url:'http://yoursite.net'}