使用自定义文本字段过滤CGridView

Luk*_*vic 8 php yii

我需要使用自定义文本字段过滤CGridView.我有自定义dataprovider(CSqlDataProvider),我返回并填充表.表很好,但对我来说似乎很痛苦的是过滤它.我花了几个小时试图解决这个问题并且支持很差.我看到有一些jQuery方法用于更新CGridView,它需要'data'参数,其值我不知道如何格式化.这是我在/ create文件中我需要这个东西的地方.

PHP:

<?php
Yii::app()->clientScript->registerScript('search', "
$('.search-form form').submit(function(){
    $.fn.yiiGridView.update('studentiSaSmjeraData', {
        data: $(this).serialize(),  -----------> this should be changed to get data from my text input using GET I guess, but I dont know the format
    });
    return false;
    });
");
?>
Run Code Online (Sandbox Code Playgroud)

考虑搜索表单的HTML和PHP:

<div class="search-form">
        <p>
            Pretraga po broju indeksa: 
        </p>
        <?php $form=$this->beginWidget('CActiveForm', array(
            'action'=>Yii::app()->createUrl($this->route),
            'method'=>'get',
        )); ?>
        <div class="row">
            Broj indeksa: <input type="text" class="br_ind" name="br_ind" id="br_ind" value=""></input>
        </div>
        <div class="row buttons">
            <?php echo CHtml::submitButton('Search'); ?>
        </div>
        <?php $this->endWidget(); ?>
</div>
Run Code Online (Sandbox Code Playgroud)

dataProvider中我希望将此文本与之比较的列称为"br_ind".

编辑: 似乎输入字段名称和id也必须对此做一些事情(它们应该是某种特定的格式).我的问题是 - 数据不是来自任何特定模型.它是通过表产品和两个表的一些附加约束获得的,所以我没有特定的模型来使用过滤器或任何在Yii中具有(afaik)支持的模型.但我想要的东西看起来很简单,但对我来说却变成了噩梦.关于函数参数的文档很差.希望有人能提供帮助.任何人碰到这个并无法解决它?

Jod*_*her 0

$.fn.yiiGridView.update()ajax在幕后使用 jQuery 的功能(如果为网格启用了 ajax 更新)。您可以查看 jQuery 文档,了解有关数据参数和其他可传递给的选项的详细信息.ajax().

$(this).serialize()正如您当前所做的那样使用应该使 jQuerybr_ind=whatever_the_value_is作为查询字符串参数添加到GET对服务器的请求中(同样,假设您使用 GET,没有看到使用 POST 或其他动词的原因,但没有提供足够的信息)。使用浏览器的开发人员工具验证所请求的 URL 和响应内容。

然后就是服务器是否正确处理请求的问题。您没有提供任何详细信息,因此我无法为您提供太多帮助。