javascript - Pjax 不起作用,重新加载整个页面

标签 javascript php gridview yii2 pjax

我正在使用 Yii2 开发一个项目,但对 Pjax 感到沮丧,因为它永远不适合我。这是我创建的一个带有 pjax 的简单 gridview:

<?php Pjax::begin(['id' => 'member-list-pjax', 'timeout' => 5000]);?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            'member_card_number',
            'member_name',
            [
                'attribute' => 'member_address',
                'format' => 'raw',
            ],
            'member_phone1',
            'member_phone2',
            [
                'attribute' => 'member_type',
                'value' => function ($model, $key, $index, $column){
                    return $model->getTypeLabel($model->member_type);
                },
                'filter' => $searchModel->getTypeLabel(),
            ],
        ],
    ]); ?>
<?php Pjax::end();?>

Pjax 根本不起作用。当我在 gridview 的过滤器中搜索某些内容时,它会重新加载整个页面。也没有 JavaScript 错误。有人可以帮助我吗?

更新

我的 Action 其实很长。但这里是我认为与 gridview 相关的部分:

$searchModel = new MemberSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

if (isset($_GET['MemberSearch']))
    $searchModel->attributes = $_GET['MemberSearch'];

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

更新2

我现在使用kartik的gridview,我删除了PJax并将'pjax'=> true放入gridview中,它成功地进行了Ajax过滤,但不久后仍然重新加载整个页面。

GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'pjax' => true,
    'pjaxSettings' => [
        'neverTimeout' => true,
    ],
    'columns' => [ /*columns same as above*/ ]
]);

最佳答案

请检查您的 ID 并将此 javascript 放在页面顶部

$('body').on('click','.reload',function(){
    $.pjax.reload({container: '#w0-pjax'});
});

也可以使用下面的代码

<?php \yii\widgets\Pjax::begin(['linkSelector'=>'','id'=>'w0-pjax']); ?>    

关于javascript - Pjax 不起作用,重新加载整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43773363/

相关文章:

javascript - 过滤网络音频

java - 如何使用 GridView 打开 Activity 。安卓

php - 如果特定图像显示 PHP,则显示特定文本

java - 我的 GridView 未显示

android - 如何在线性布局中一起滚动 2 个 GridView?

javascript - 将分数转换为等级更简单。有没有更简单的方法来编写以下代码?

javascript - 如何在 Angular 或 Javascript 中获取多个对象中的数组结果?

Javascript 函数在两个特定值之间反转

php - 选择 ... 其中 id = 任何值。可能吗?

php - laravel cookie 在发布数据后不起作用