2016-09-29 13 views
0

Yii2のアンカータグをクリックすると、部分的なレンダリングに問題があります。次のようにYII2 - アンカータグの部分的な更新をクリック

マイビューのコードは次のとおりです。

<div class="col-md-5 module"> 

    <h2><?php echo $client->subtitle ?></h2> 

    <div class="text-center industries-wrapper"> 

     <div class="center-wrapper clearfix"> 
      <ul class="nav nav-pills"> 
       <?php foreach ($clientMarkets as $key => $clientMarket) : ?> 
        <li <?= ($key == 0) ? 'class="active"' : '' ?>> 
         <a <?= ($key == 0) ? 'href="#1a"' : 'href="#2a"' ?> data-toggle="tab"> 
          <?php echo $clientMarket->title ?> 
         </a> 
        </li> 
       <?php endforeach; ?> 
      </ul> 
     </div> 

     <div class="tab-content center-wrapper clearfix"> 
      <?php foreach ($clientMarkets as $key => $clientMarket) : ?> 
       <div id="1a" <?= ($key == 0) ? 'id="1a"' : 'id="2a"' ?> 
        class="tab-pane<?= ($key == 0) ? ' active' : '' ?>"> 

        <div class="contact-info"> 
         <ul> 
          <?php foreach ($clientMarket->children as $key => $client) : ?> 
           <li><a><?php echo $client->title ?></a></li> 
          <?php endforeach; ?> 
         </ul> 
        </div> 
       </div> 
      <?php endforeach; ?> 
     </div> 

    </div> 

    <hr> 

    <div class="client-description hidden-xs"><?php echo $clientDescription->short ?></div> 
</div> 

<div class="col-md-7 module"> 
    <div id="client-section-carousel" class="carousel slide" data-ride="carousel"> 
     <div class="carousel-inner" role="listbox"> 
      <?php echo $this->render('_partials/references', ['name' => 'value']) ?> 
     </div> 
    </div> 
</div> 

私はdivのcontact-infoでアンカータグをクリックすると、クラスcarousel-innerでdivの中に部分的なビューを更新するのが好きです。

私はajaxを使っていくつかの例を探しましたが、クリックしてパーシャルを更新する方法を見つけることができません。

ありがとうございました。

答えて

0

独自のロジックを持つ単純なJS/AJAXコードを書きたくない場合は、Pjaxを試してみてください。このような

何か:

<a href="#" onclick="$.pjax.reload('#pjaxId', {timeout : false});">Update Pjax container via AJAX</a> 

... 

<div class="carousel-inner" role="listbox"> 

    <?php 
    Pjax::begin(['id' => 'pjaxId']); 

    echo $this->render('_partials/references', ['name' => 'value']); 

    Pjax::end(); 
    ?> 

</div> 

UPD:

あなたがAJAX更新で使用するためのURLを変更する場合:あなたの助けIStrangerため

<?php $ajaxUrl = \yii\helpers\Url::to(['some-controller/some-action']); ?> 

<a href="#" onclick="$.pjax.reload('#pjaxId', {timeout : false, url: '<?= $ajaxUrl ?>'});"> 
    Update Pjax container via AJAX 
</a> 
+0

ありがとう!しかし、私はクリックイベントがトリガーされたときに部分データを更新する方法を理解できません。私はYii2の新人です。私がしたいことが正しいアプローチに基づいているかどうかはわかりません。クリックイベントがトリガされると、コントローラ内のアクションを呼び出して、ページをリロードせずにビュー内のレンダリング関数に渡す必要のあるデータを返す必要があります。 – JDL

+0

このコードを試しましたか?必要に応じて機能します。 – IStranger

+0

はい、私はあなたのコードを試して、それはうまく動作しますが、Clickイベントは、SiteControllerでアクションを呼び出す必要がありますし、新しいデータで部分を更新する必要がありますが、これを行う方法を把握することはできません。 – JDL

関連する問題