2016-01-28 28 views
0

如何更改將通過服務器響應進行更新的元素(標記)。Yii2 - 我們如何通過Pjax響應更改要更新的元素

這是我的形式

<div id="test" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel"> 
      <div class="modal-dialog modal-sm"> 
      <div class="modal-content"> 
       <div class="modal-header">ورود به سایت</div> 
       <?php 
       \yii\widgets\Pjax::begin(['enablePushState'=>FALSE]); 
       $loginModel=new \common\models\LoginForm(); 
       $form=\yii\bootstrap\ActiveForm::begin([ 
        'id'=>'form-login',       
        'options'=>['data-pjax'=>''], 
        'method'=>'post', 
        'action'=>['site/login'], 

       ]); 

       echo $form->field($loginModel, 'username')->textInput()->label('نام کاربری'); 
       echo $form->field($loginModel, 'password')->passwordInput()->label('رمز عبور'); 
       echo $form->field($loginModel,'captchaLogin')->widget(yii\captcha\Captcha::className(),[ 
        'attribute'=>'captchaLogin', 
        'captchaAction'=>'site/captchaLogin', 
        'id'=>'captchaLogin',            
       ])->label('کد امنیتی');           
       ?> 
       <div style="color:#999;margin:1em 0">    
        برای یادآوری رمز عبور <?= \yii\helpers\Html::a('اینجا کلیک کنید', ['site/request-password-reset']) ?>. 
       </div> 
       <div class="form-group"> 
        <?= \yii\helpers\Html::submitButton('ورود', ['class' => 'btn btn-primary', 'name' => 'login','value'=>'ورود']) ?> 
       </div> 
       <div id="my"></div> 

       <?php 
       \yii\bootstrap\ActiveForm::end(); 
       \yii\widgets\Pjax::end(); 
       ?> 
      </div> 
      </div> 
     </div> 

基本上都通過了新的內容<div id=#test></div>內容更新。我希望將所有響應都推送到<div id="my"></div>標記中,而不需要更新。

+0

添加您的pjax容器的一個id .... –

+0

添加,仍然不工作... – user2564443

回答

0

您可以使用pjax:beforeReplace方法並推送<div id="my"></div>中的所有內容而不是<div id=#test></div>

這裏是documentation link

For Ex。

$(function(){ $('#test').on('pjax:beforeReplace',function(contents, options){ $('#my').html(contents); }); });

你的js代碼可能看起來像這樣。