Задать вопрос
@Oversec

Как настроить работу Ajax и GridView?

Вот который день ломаю голову, как мне сделать, чтобы человек мог менять данные в таблице (GridView) и таблица автоматический обновляется без перезагрузки страницы? Пробовал через Pjax - не вышло. Возможно ли через Ajax?

Пример кода на Pjax который вышел у меня

view/index.php
$this->registerJs(
    '$( ".pjax" ).click(function(event) {
   $.pjax.reload({container: "#tasks"});
});

 <?php Pjax::begin(['id' => 'tasks']); ?>
 <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            [
                'class' => 'yii\grid\CheckboxColumn',
            ],
            [
                'attribute' => 'doc',
                'contentOptions' => ['style' => 'font-size: 1.3em !important'],
                'format' => 'raw',
                'filter' => [
                    0 => 'Нету',
                    1 => 'Есть',
                ],
                'value' => function ($model, $key, $index, $column) {
                    $active = $model->{$column->attribute} === 1;
                    return Html::a(
                        $active ? 'Есть' : 'Нету',
                        ['task/doc', 'id' => $model->id],
                        [
                            'class' => 'pjax label label-' . ($active ? 'success' : 'warning'),
                        ]
                    );
                },
            ],
?>

   <?php Pjax::end(); ?>


conreollers/TaskController.php
public function actionDoc($id)
    {
        $model = Task::findOne($id);
        $model->doc = !$model->doc;
        $model->save(false);

        $this->redirect('index');
    }


Таблица при клике обновляется, но данные не меняются + если это делать в середине таблицы - то перебрасывает вверх.
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Пробовал через Pjax - не вышло. Возможно ли через Ajax?


Pjax — это jquery плагин, который использует pushState и ajax и предоставляет возможность грузить страницу не полностью при переходе по ссылкам, а частично, но с соответствующим заголовком страницы и возможностью возврата назад


Получается, что Вы уже используете ajax.

В контроллере, в действии зачем Вы редирект поставили? Откуда Вы берёте id? Вы уверены, что он есть? Проверьте.
Как Вы отправляете данные на сервер? Вы хотите повесить клик на ячейку таблицы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы