我需要使用自定义文本字段过滤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)支持的模型.但我想要的东西看起来很简单,但对我来说却变成了噩梦.关于函数参数的文档很差.希望有人能提供帮助.任何人碰到这个并无法解决它?
$.fn.yiiGridView.update()ajax在幕后使用 jQuery 的功能(如果为网格启用了 ajax 更新)。您可以查看 jQuery 文档,了解有关数据参数和其他可传递给的选项的详细信息.ajax().
$(this).serialize()正如您当前所做的那样使用应该使 jQuerybr_ind=whatever_the_value_is作为查询字符串参数添加到GET对服务器的请求中(同样,假设您使用 GET,没有看到使用 POST 或其他动词的原因,但没有提供足够的信息)。使用浏览器的开发人员工具验证所请求的 URL 和响应内容。
然后就是服务器是否正确处理请求的问题。您没有提供任何详细信息,因此我无法为您提供太多帮助。
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |