Pjax and form submit not woking in yii2

842 views Asked by At

I'm developing a registration page but some part of this page should be submitted alone. I make some research and found Pjax in yii2 ut what I found in the documentation not working properly with mine.

  1. No tag is created...only a hidden element containing csrf.
  2. On submission, All page is reloaded.

View:

<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>

Controller:

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]);
}

I can't find what is the problem that Pjax not working properly and why submit button reload all the page when is clicked.

1

There are 1 answers

3
Ivoglent Nguyen On

The page reloaded because controller throw 500 error. You should change $model->upload() to $model->imageFile->upload() and try catch more issues while controller is processing upload request