【问题标题】:Ajax filtering not working in CGridView in Yii (also the advanced search form does not open on clicking 'Advanced Search')Ajax 过滤在 Yii 的 CGridView 中不起作用(单击“高级搜索”时高级搜索表单也无法打开)
【发布时间】:2023-04-11 12:37:01
【问题描述】:

我刚开始在 Yii 上工作,在 CGridView 上遇到了一些问题..

ajax 过滤器在网格视图中不起作用。当我检查控制台时,我看到没有发送任何 ajax 请求。

这是我的观点 (admin.php)

Yii::app()->clientScript->registerScript('search', "
$('.search-button').click(function(){
    $('.search-form').toggle();
    return false;
});
$('.search-form form').submit(function(){
    $('#user-grid').yiiGridView('update', {
        data: $(this).serialize()
    });
    return false;
});
");
?>

<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'id',
    'email_id',
    'name',
    'user_type',
    array(
        'class'=>'CButtonColumn',
    ),
),
)); ?>

模型文件(User.php)

public function search()
{
    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id);
    $criteria->compare('email_id',$this->email_id,true);
    $criteria->compare('name',$this->name,true);
    //$criteria->compare('password',$this->password,true);
    $criteria->compare('user_type',$this->user_type);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
                     'pagination'=>array('pageSize'=>3),
    ));
}

和内部规则()

 array('id, email_id, name,  user_type', 'safe', 'on'=>'search'),

在控制器文件(UserController.php)中

public function actionAdmin()
{
    $model=new User('search');
    $model->unsetAttributes();  // clear any default values
    if(isset($_GET['User']))
        $model->attributes=$_GET['User'];

    $this->render('admin',array(
        'model'=>$model,
    ));
}

单击“高级搜索”时,高级搜索表单也不会打开。 我已经搜索了许多与它相关的线程,但它没有帮助.. 请帮我找出问题.. 问候狮子座

【问题讨论】:

  • 您确定没有收到 JavaScript 错误吗?
  • 我收到此错误,不确定是否与它相关:未捕获的异常:绘图尺寸无效,宽度 = null,高度 = null
  • 是JS错误吗?因为对我来说,过滤似乎不起作用,因为 JavaScript 没有被执行并且 JavaScript 没有被执行,因为你有一个 JS 错误。因此,如果您遇到 JS 错误,您应该尝试找到该组件提供并修复它。之后,搜索应该开始工作了。
  • 你可能是对的......我会先尝试修复它:)
  • 是的,确实是 js 错误...感谢您的帮助

标签: php ajax yii


【解决方案1】:

调试提示:如果某些依赖于 JavaScript 的东西不起作用,99% 的情况下您会收到一个 JavaScript 错误,该错误会终止 JavaScript 的其余部分。

【讨论】:

    【解决方案2】:

    前段时间我遇到了同样的错误。 这是因为我在页面底部包含了我自己的 jquery 声明 并且与 YII 自动脚本管理存在冲突,其中包括头部的 jquery 声明 页面。

    您应该能够通过查看页面生成的源代码来看到这一点...

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 2015-04-13
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      相关资源
      最近更新 更多