2016-10-03 5 views
1

У меня есть сетка, которая включает проверку тележки. Я хочу, чтобы содержимое сетки менялось без обновления страницы.Автоматическое обновление сетки yii2 после изменения базы данных сервера

В настоящее время это работает, когда страница обновляется, но я бы хотел, чтобы она работала, даже когда страница не обновляется, когда содержимое изменяется в базе данных сервера.

Это сетка

<?php 

$gridColumns = [ 
['class' => 'kartik\grid\SerialColumn'], 
    'reg_no', 
[ 
    'attribute'=>'truck_category', 
    'value'=>'truckCategory.category' 
], 

[ 
    'class' => 'kartik\grid\ActionColumn', 
    'vAlign'=>'middle', 
    'urlCreator' => function($action, $model, $key, $index) { return '#'; }, 
    'viewOptions'=>['title'=>"vdgdv", 'data-toggle'=>'tooltip'], 
    'updateOptions'=>['title'=>"update", 'data-toggle'=>'tooltip'], 
    'deleteOptions'=>['title'=>"delete", 'data-toggle'=>'tooltip'], 
    ] 
]; 


echo GridView::widget([ 
'dataProvider' => $dataProvider, 
'filterModel' => $searchModel, 
'columns' => $gridColumns, 
'containerOptions' => ['style'=>'overflow: auto'], // only set when $responsive = false 
'beforeHeader'=>[ 
    [ 
     'options'=>['class'=>'skip-export'] // remove this row from export 
    ] 
], 
'toolbar' => [ 
    [], 
    '{export}', 
    '{toggleData}' 
], 
'pjax' => true, 
'bordered' => true, 
'striped' => false, 
'condensed' => false, 
'responsive' => true, 
'hover' => true, 
'floatHeader' => true, 
'showPageSummary' => true, 
'panel' => [ 
    'type' => GridView::TYPE_PRIMARY 
], 

]); ?>

Это контроллер, который делает сетку

public function actionTrackingcenter() 
{ 
    $query = Truck::find()->where(['truck_status'=>5]); 
    $searchModel = new TruckSearch(); 
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams,$query); 

    return $this->render('trackingcenter/index', [ 
     'searchModel' => $searchModel, 
     'dataProvider' => $dataProvider, 
    ]); 

} 

Может кто-то дать направление, как я могу достичь автоматического изменения

+1

Вы задумывались над JavaScript (например, jQuery)? – sk001

+1

вам нужно использовать pjax вот пример https://www.youtube.com/watch?v=ZhblqEROLWo –

+0

спасибо, я понял концепцию –

ответ

1

Вы можете использовать ниже с настроенным интервалом времени с JQuery

<?php 

$this->registerJs(' 
    setInterval(function(){ 
     $.pjax.reload({container:"YOUR_PJAX_CONTAINER_ID"}); 
    }, 10000);', \yii\web\VIEW::POS_HEAD); 
?> 

Этот код будет место после того, как код GridView

Это будет перезарядка вашей сетки Pjax каждые 10 секунд.

+0

Спасибо, я сделал это таким образом ... Пожалуйста, ответьте мне на этот вопрос http: // stackoverflow.com/questions/39873040/calling-a-function-on-grid-action-coumn-click –

Смежные вопросы