2016-01-12 88 views
1

我已经使用模态查看注释列表,其中模态具有更新按钮和文本框。如何在模式窗口中重新加载pjax div yii2

当用户在文本框中输入一些文本并单击更新按钮时,我希望重新加载注释列表div,而不必重新加载整个页面或关闭或隐藏模式。

我已经阅读 How to update widget with pjax in modal window in yii2 que。但仍然没有得到解决方案。

我的代码是

注册js和查看文件

$this->registerJs(" 
$(function() { 
    $('#replayMeg').on('beforeSubmit', function(event, jqXHR, settings) { 
     var comment = $('#".Html::getInputId($modelReply, 'hdr_comments')."').val(); 
     var ticketId = $model->hdt_id; 

     $.ajax({ 
      url: '".Url::to(['helpdesk-replies/create'])."', 
      type: 'post', 
      data: { replyMsg : comment, ticketId : ticketId}, 
      beforeSend: function() { 
       if($('#".Html::getInputId($modelReply, 'hdr_comments')."').val() == '') 
       { 
        $('.field-helpdeskreplies-hdr_comments').addClass('form-group field-helpdeskreplies-hdr_comments required has-error'); 
        $('.help-block').html('Reply cannot be blank.'); 
        return false; 
       } 
      }, 
      success: function(data) { 
       //$.pjax.reload({container:'#update_replyBox'}); 
      } 
     }); 

     return false; 
    }) 
}); 
"); 

<?php yii\widgets\Pjax::begin(['id' => 'update_replyBox']); ?> 
<div class="modal-body"> 
<div class="box-tools pull-right"> 
       <?= $actionBtn; ?> 
      </div> 
</div> 
<div class="panel panel-info"> 
      <div class="panel-heading colorchangeheader left-align"> 
      <i class="fa fa-users fa-fw"></i> <?= $model->getUserName($cData['hdr_replay_user_id']); ?> <span class="mobilebreakpoint"><i class="fa fa-clock-o fa-fw"></i><?= Yii::$app->formatter->asDate($cData['created_at']); ?> @ <?= Yii::$app->formatter->asTime($cData['created_at']); ?></span> 
      </div> 
      <div id="rp8" class="panel-body"> 
      <?= $cData['hdr_comments'] ?> 
      </div> 
    </div> 

<?php $form = ActiveForm::begin(['id' => 'replayMeg']); ?> 
     <div class="box-body"> 
      <div class='row'> 
       <div class='col-sm-12'> 
        <?= 
         $form->field($modelReply, 'hdr_comments')->widget(RemainingCharacters::className(), [ 
          'type' => RemainingCharacters::INPUT_TEXTAREA, 
          'name' => 'message_body', 
          'id' => 'message_body-textarea', 
          'text' => Yii::t('app', '{n} Characters Remaining'), 
          'label' => [ 
           'tag' => 'p', 
           'id' => 'my-counter', 
           'class' => 'counter text-aqua', 
           'invalidClass' => 'error' 
          ], 
          'options' => [ 
           'rows' => '3', 
           'class' => 'form-control replyTextArea', 
           'maxlength' => 200, 
           'placeholder' => Yii::t('app', 'Write something'), 
          ] 
         ]); 
        ?> 
       </div> 
      </div> 
     <!--/div> 
     <div class="box-footer"--> 
      <?= Html::button('<i class="fa fa-reply"></i> '.Yii::t('comm', 'Reply'), ['class' => 'btn btn-info btn-create submit', 'type' => 'submit']) ?> 
     </div> 
     <?php ActiveForm::end(); ?> 

    <?php yii\widgets\Pjax::end() ?> 

enter image description here

+0

哎什么提交表单时,现在情况如何?你为什么要评论下面的块//$.pjax.reload ({container:'#update_replyBox'}); – Bloodhound

+0

表单提交如此模态时隐藏并重新加载页面。如果'$ .pjax.reload({container:'#update_replyBox'});'取消注释,重新加载整个页面 – GAMITG

回答