I’m working on a Tax widget and I have pagination in each tab the problem when I m working with pagination the page refresh, and I lose the current tab where I was before same things when I was work with ajax page doesn’t reload I lost the active tab i m working with ajax render via jquery
#My view
<?php use yii\widgets\ListView; use yii\widgets\Pjax; use yii\widgets\LinkPager ; use kartik\tabs\TabsX; $categoriesNames = []; $items = []; Pjax::begin(['id' => 'pjax', 'enablePushState' => true, // I would like the browser to change link 'timeout' => 10000 // Timeout needed ]); $content= ListView::widget([ 'dataProvider'=>$dataProvider, 'itemView' => function ($model, $key, $index, $widget) { return $this->render("_filter_card",['model1' => $model]); // or just do some echo // return $model->title . ' posted by ' . $model->author; }, // this is where you have to specify the view file 'layout' => '{items}', // here you can specify how the listview should render your custom view file. {items} is the list items and {pager} is the pagination component 'itemOptions'=>[ 'id'=>'member_tab', 'tag'=>false, // we don't want the wrapping div for each item ], // itemOptions is the place where we can add Html attribute for the wrapper element ]); $content1= LinkPager::widget([ 'pagination' => $pages, 'linkOptions'=>[ 'class'=>"page-link ", 'style'=>'.prev .disabled{ content: ""; }' ] ]); $content=$content.$content1; $label=['Filter by: Price','Popular','Customer rating']; for($i=0;$i<3;$i++){ array_push($items, [ 'label' => $label[$i], 'id'=>'MyTabs', 'content' => $content, 'active' => count($items) == 0 ]); } echo TabsX::widget([ "id" => "tabs", 'position'=>TabsX::POS_ABOVE, 'align' => TabsX::ALIGN_LEFT, 'bordered'=>true, 'encodeLabels'=>false, 'items' => $items // [ // [ 'label' => 'One', 'content' => 'Anim pariatur cliche...', 'active' => true ], // [ 'label' => 'Two', 'content' => 'Anim pariatur cliche...', 'headerOptions' => [], 'options' => ['id' => 'myveryownID'], ], // ], ]); $ts = ' $( document ).ready(function() { $("li.prev.disabled span").empty(); }); '; $this->registerJs($ts); Pjax::end() ;
#jquery methode
<?php $filter = ' $( document ).ready(function() { function fetch(){ var prix = 0; $.ajax({ type: "POST", url: "?r=site/filter&price="+prix data: prix, dataType: "html", success: function(data) { $("#loaderDiv").hide(); $("#some_pjax_id").html(data); //$.pjax.reload({container: "#pjax}); } }); } fetch(); function fetch1(){ var prix=$("input:checkbox:checked").val() $.ajax({ type: "POST", url: "?r=site/filter&price="+prix, timeout: 10000 , data: prix, dataType: "html", beforeSend: function() { $("#some_pjax_id").html(" "); $("#loaderDiv").show(); }, success: function(data) { $("#loaderDiv").hide(); $("#some_pjax_id").html(data); } }); } $( "input:checkbox" ).click(function() { fetch1(); }); }); '; $this->registerJs($filter);