私はサイト上の製品を検索しています。初めてページを読み込むと、すべての製品が表示されます。 製品ブロックは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,
プット値:
でそれをキャッチすることができます。任意の解決策を見つけることができますか? – goseo