2017-10-17 2 views
0

私はサイト上の製品を検索しています。初めてページを読み込むと、すべての製品が表示されます。 製品ブロックはpjaxでラップされ、ページ区切りはウィジェットLinkPagerによって実行されます。yii2、ページ分割はajaxとrenderPartialの後では機能しません

サーバーへの検索要求はajaxによって実行され、見つかった製品ブロックはrenderPartialを介して返されます。次のページに切り替えると、検索結果がリセットされ、すべての製品が再び表示されます。 renderPartitalの実行後、ウィジェットLinkPagerが正しく動作しないことが判明しました。

ビュー:

<div class="search-wrap"> 
<input type="text" class="search-input" id="search" placeholder="Поиск по названию" name="p"> 
<button type="submit" class="btn filter-search-btn-menu" id="btns">Поиск</button> 
<script> 
$('#btns').on('click', function(e){ 
    var search = $('#search').val(); 
     $.ajax({ 
     type: 'POST', 
     url: "/person/notice", 
     data: { 'search': search }, 
     cache: false, 
     success: function (data) { 
       $('#allnotice').html(data); 
      }); 
}); 
</script> 
</div> 

<div id="allnotice"> 
<?php yii\widgets\Pjax::begin();?> 
<div id="up"> 

<?php if ($offerings) foreach($offerings as $one): ?> 
<div class="preview-notice-wrap"> 
<div class="preview-notice-inner"> 
     <h4><?php echo $one->title; ?></h4> 
     <div class="preview-notice"> 
       <div> 
         <p><?php 
           $price = $one->start_price; 
           echo number_format($price) . ' ₽'; 
         ?></p> 
       </div> 
       <div> 
         <p><?php 
         $date = $one->created; 
         echo Yii::$app->formatter->asDate($date, 'd MMMM y'); 
         ?> </p> 

       </div> 
     </div> 
    </div> 
</div> 
<?php endforeach; ?> 
<div class="notice-pagination-wrap preview-notice-pagination"> 
<?= \app\components\MyPager::widget([ 
    'pagination' => $pages, 
    'maxButtonCount' =>7, 
    'prevPageLabel' => false, 
    'nextPageLabel' => false, 
    'activePageCssClass' => ['class' => 'page-active'], 
    'options' => ['class' => 'page-test'], 
    'linkOptions' => ['class' => 'page-link'], 



    ]); ?> 


</div> 

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

コントローラ:URL内の

url: "/person/notice?search="+search, 

プット値:

​​
+0

でそれをキャッチすることができます。任意の解決策を見つけることができますか? – goseo

答えて

0

私は1つのソリューションを持っています。

$('#btns').on('click', function(e){ 
    var search = $('#search').val(); 
     $.ajax({ 
     type: 'POST', 
     url: "/person/notice?search="+search, 
     data: { 'search': search }, 
     cache: false, 
     success: function (data) { 
       $('#allnotice').html(data); 
      }); 
}); 

と私は同じ問題を持っているコントローラ

if(isset($_POST['search'])) 
     $search_word = trim($_POST['search']); 
    if(isset($_GET['search'])) 
     $search_word = trim($_GET['search']); 
+0

これはもちろん動作しません! – goseo

関連する問題