2016-09-29 3 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과 사업부에서 부분보기를 업데이트 좋아합니다.

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