2016-12-29 53 views
0

沃金我正在開發一個註冊頁面,但該頁面的某些部分應單獨提交。我做了一些研究,發現PJAX在yii2 ut我發現在文檔中與我的工作不正常。Pjax和表單提交不yii2

  1. 沒有標籤創建...只有一個隱藏的元素包含csrf。
  2. 提交時,所有頁面都重新加載。

查看:

<div class="row profileimg"> 
    <?php Pjax::begin(['timeout' => 40000, 'id' => 'myPjax',]); ?> 
    <?= Html::beginForm(['couple-partner/saveprofileimg'], 'post', ['id' => 'CouplePartnerSumb', 'data-pjax' => true, 'class' => 'form-inline']);       ?> 

    <div class="col-lg-12" onmouseover="onmouseOverImg('FirstPartnerEditButton', 'FirstPartnerDelButton');" onmouseout="onmouseoutImg('FirstPartnerEditButton', 'FirstPartnerDelButton')" id="imgdiv" style="display:inline-block;position: relative;left : 35%;height: 110px;width: 150px;"> 
     <img src="<?= $models != NULL && sizeof($models) > 0 && $models[0]->USER_PROFILE_PIC != NULL ? $models[0]->USER_PROFILE_PIC : "" ?>" style="cursor: pointer;width:100%;height:100% " id="firstPartnerProfilePic" class="img-thumbnail "> 
     <?= Html::fileInput('imageFile', '') ?> 

     <?php echo Html::submitButton('Upload', ['class' => 'btn btn-primary', 'id' => 'submit_iddddd',]) ?> 

    </div> 
    <?php echo Html::endForm();Pjax::end();?> 
</div> 

控制器:

public function actionSaveprofileimg() { 
    $model = new CouplePartner(); 

    if (Yii::$app->request->isAjax) { 
     $model->imageFile = UploadedFile::getInstance($model, 'imageFile'); 
     if ($model->upload()) { 
      // file is uploaded successfully 
      return; 
     } 
    } 

    return $this->renderAjax('index', ['model' => $model]); 
} 

我找不到那是什麼Pjax不能正常工作的問題,爲什麼提交按鈕重新加載所有的頁面點擊時。

+0

第一次檢查正常後置條件類似$模型 - >負載(的Yii :: $ APP->請求 - >後( ) –

回答

0

重新加載,因爲控制器拋出500錯誤頁面。 你應該改變 $model->upload() $model->imageFile->upload() 並試圖捕捉更多的問題,同時控制器處理上傳請求

+0

提交按鈕...提交的主要形式...我不知道爲什麼。 –

+0

順便說一句,我需要使用Yii和pjax ......這就是我想實現上傳文件。 –

+0

這沒關係。只需添加更多的形式屬性:multipart/form-data然後你可以從控制器獲取文件 –