- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 CGridview 中的筛选功能时遇到问题。过滤盒根本不起作用。当我输入内容并按回车键时,没有任何反应。
这里是查看代码selectproducts.php::
<div id="shortcodes" class="page">
<div class="container">
<!-- Title Page -->
<div class="row">
<div class="span12">
<div class="title-page">
<h2 class="title">Available Products</h2>
</div>
</div>
</div>
<!-- End Title Page -->
<!-- Start Product Section -->
<div class="row">
<?php
$this->widget('bootstrap.widgets.TbGridView', array(
'id' => 'products-grid',
'dataProvider' => $dataProvider,
'filter' => $dataProvider->model,
'ajaxUpdate' => TRUE,
'pager' => array(
'header' => '',
'cssFile' => false,
'maxButtonCount' => 25,
'selectedPageCssClass' => 'active',
'hiddenPageCssClass' => 'disabled',
'firstPageCssClass' => 'previous',
'lastPageCssClass' => 'next',
'firstPageLabel' => '<<',
'lastPageLabel' => '>>',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
),
'columns' => array(
'id',
array(
'name' => 'name',
),
'category',
'brand',
'weight_unit',
'price_unit',
'flavors',
array(
'name' => 'providers',
'value' => function($data) {
return '<div class="provider-label label label-info"><a href="http://www.'.$data->providers. '">'. $data->providers .'</a></div>';
},
'type' => 'raw',
),
),
));
?>
</div>
<!-- End Product Section -->
</div>
这是 ProductsController 中渲染此 View 的相关操作。 View 中的 $dataprovider 变量是一个 CActiveDataProvider 对象,它保存条件查询的结果。
public function actionDropdown() {
if (isset($_GET["Dropdown"])) {
$dropdownData = $_GET["Dropdown"];
$this->category = $dropdownData["category"];
$this->price = $dropdownData["price"];
}
// separate the price text into min and max value
$priceText = explode(" - ", $this->price);
$criteria = new CDbCriteria;
$criteria->compare('category', $this->category, true);
$criteria->addBetweenCondition('price', substr($priceText[0], 1), substr($priceText[1], 1), 'AND');
$dataProvider = new CActiveDataProvider('Products', array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => 20,
),
'sort' => array(
'defaultOrder' => 'price_unit, name',
),
));
$this->render('selectproducts', array(
'dataProvider' => $dataProvider,
'criteria' => $criteria,
));
}
这是 Products() 模型 search() 函数::
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('name',$this->name,true);
$criteria->compare('category',$this->category,true);
$criteria->compare('brand',$this->brand,true);
$criteria->compare('weight',$this->weight,true);
$criteria->compare('weight_unit',$this->weight_unit,true);
$criteria->compare('price',$this->price,true);
$criteria->compare('price_unit',$this->price_unit,true);
$criteria->compare('flavors',$this->flavors,true);
$criteria->compare('providers',$this->providers,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
现在,当我在过滤器框中按回车键时,我收到此错误,该错误已记录在 firebug 中
TypeError: $.param.querystring is not a function
[Break On This Error]
options.url = $.param.querystring(options.url, options.data);
In file jquery.yiigridview.js
有谁知道是什么原因导致此错误。我只是不明白是什么原因造成的。而且我也不知道应该在 jquery.yiigridview.js 中进行哪些修改来修复此错误。
提前致谢。麦克斯
编辑
根据下面tinyByte的建议。我尝试将 CActiveDataProvider 逻辑移至模型,以便我可以在 GridView 'dataProvider' 属性中使用 $model->search(),但它仍然没有帮助解决相同的错误。
这是代码
Controller :::
public function actionDropdown() {
$dataProvider = new Products;
if (isset($_GET["Dropdown"])) {
$dropdownData = $_GET["Dropdown"];
$this->category = $dropdownData["category"];
$this->price = $dropdownData["price"];
}
$this->render('selectproducts', array(
'dataProvider' => $dataProvider,
'category' => $this->category,
'price' => $this->price,
//'num' => $this->numResults,
));
}
这是模型::
public function searchDropdown($category, $price) {
$this->priceText = explode(" - ", $price);
$this->criteria = new CDbCriteria;
$this->criteria->compare('category', $category, true);
$this->criteria->addBetweenCondition('price', substr($this->priceText[0], 1), substr($this->priceText[1], 1), 'AND');
return new CActiveDataProvider('Products', array(
'criteria' => $this->criteria,
'pagination' => array(
'pageSize' => 25,
),
'sort' => array(
'defaultOrder' => 'price_unit, name',
),
));
}
这是 View ::
<div id="shortcodes" class="page">
<div class="container">
<!-- Title Page -->
<div class="row">
<div class="span12">
<div class="title-page">
<h2 class="title">Available Products</h2>
</div>
</div>
</div>
<!-- End Title Page -->
<!-- Start Product Section -->
<div class="row">
<?php
$this->widget('bootstrap.widgets.TbGridView', array(
'id' => 'products-grid',
'dataProvider' => $dataProvider->searchDropdown($category, $price),
'filter' => $dataProvider,
'ajaxUpdate' => TRUE,
'pager' => array(
'header' => '',
'cssFile' => false,
'maxButtonCount' => 25,
'selectedPageCssClass' => 'active',
'hiddenPageCssClass' => 'disabled',
'firstPageCssClass' => 'previous',
'lastPageCssClass' => 'next',
'firstPageLabel' => '<<',
'lastPageLabel' => '>>',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
),
'columns' => array(
array(
'name' => 'id',
'type' => 'raw',
),
array(
'name' => 'name',
),
'category',
'brand',
'weight_unit',
'price_unit',
'flavors',
array(
'name' => 'providers',
'value' => function($data) {
return '<div class="provider-label label label-info"><a href="http://www.'.$data->providers. '">'. $data->providers .'</a></div>';
},
'type' => 'raw',
),
),
));
?>
</div>
<!-- End Product Section -->
</div>
它仍然不起作用。即,当我在过滤框中输入内容并按 Enter 键时,什么也没有发生。出现同样的错误::
在 Firebug 中
TypeError: $.param.querystring is not a function
[Break On This Error]
options.url = $.param.querystring(options.url, options.data);
In file jquery.yiigridview.js
在 Chrome 中,我收到了一条更具描述性的错误消息。
Uncaught TypeError: Object function (e,n){var r,i=[],o=function(e,t)
{t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&
x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});
else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")}
has no method 'querystring'
jquery.yiigridview.js:310
我就是不知道该怎么办。
编辑
好吧,经过长时间的努力,在 Yii 论坛 http://www.yiiframework.com/forum/index.php/topic/47904-error-with-cgridview-filter-property-error-code-has-no-method-querystring/page_view_findpost_p_224169 的一位论坛伙伴的帮助下,我设法摆脱了这个错误。 。
这是我添加的内容。
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.ba-bbq.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.jquery.ajaxqueue.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.autocomplete.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.bgiframe.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.maskedinput.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.metadata.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.treeview.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.treeview.async.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.treeview.edit.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.yii.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.yiiactiveform.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/jquery.yiitab.js"></script>
<script src="<?php echo Yii::app()->assetManager->baseUrl; ?>/28e7347b/punycode.js"></script>
错误消失,但过滤器仍然无法工作。 ajax 加载图标显示不到一秒,然后什么也没有发生。我还看到数组中传递了正确的搜索参数。
这是我看到传递的数组
Dropdown[category] Chant Books
Dropdown[price] $340 - $476
Products[brand]
Products[category]
Products[flavors]
Products[name] Owl Chant Scroll
Products[price_unit]
Products[providers]
Products[weight_unit]
Products_page 1
ajax products-grid
yt0
最佳答案
根据我的经验,这个错误的原因是jQuery冲突:有一个是你加载的,另一个是cgridview加载的。解决方案是删除您的 jquery,或者如果您必须拥有它 - 删除 Yii 的 jquery:
$cs=Yii::app()->clientScript;
$cs->scriptMap=array(
'jquery.js'=>false,
);
关于php - Cgridview 'filter' 属性出错,错误代码::没有方法 'querystring',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19330816/
我喜欢使用 Python 的 SimpleHTTPServer 来本地开发各种需要通过 Ajax 调用等方式加载资源的 Web 应用程序。 当我在我的 URL 中使用查询字符串时,服务器总是重定向到相
我们正在使用 Swagger/Swashbuckle 生成 OpenApi 定义。然后将此定义导入到 Azure API 管理中。 我们在 get 请求中有一些我们标记为必需的查询字符串参数。我们的验
我有一个带有查询字符串的页面请求,例如http://www.xyz.net/Orders.aspx?OrderID=1。该页面显示在浏览器中。现在页面上有一个 asp:LinkButton ,它应
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我需要http://profiles.mysite.com/Me显示什么http://mysite.com/profile.php?user=Me会显示。 “我”根据用户名而变化。它可以包含空格并且不
我正在努力实现以下条件 orgId =“z2store”,类型 =“web”,日期时间 =“12:17:08” 下面是我写的查询 GET /sample/_search { "bool" : {
我有一个网址: http://mywebsite.com/Account/?Number=25191108&Name=Something&Remote=False 我想重定向到: http://ano
是否可以在回发时附加到查询字符串?如果是,您到底是怎么做到的? 谢谢! 最佳答案 据我所知不是。您对 ASP.NET 的回发没有太多控制。对于另一种类型的应用程序,您可以发布到另一个页面。我知道在 a
我在一个支付平台上工作,为了响应支付,一个简单的 GET 调用,在查询字符串中有一些参数,是对我的听众的: http://localhost/mytest/listener?TIMECREATED=0
方法一: 在 JavaScript 中,可以使用 URLSearchParams 对象来处理 URL 中的查询字符串. 序列化(将 JavaScript 对象转换为查询字符串)可以使用 URLSe
一,开篇分析 这篇文章把这三个模块拿来一起说,原因是它们各自的篇幅都不是很长,其次是它们之间存在着依赖关系,所以依次介绍并且实例分析。废话不多说了,请看下面文档: (1),"Url模块
我想将查询字符串附加到页面内的所有动态链接上 - 以修复旧版本中的错误 - 这可能吗? 有什么想法吗? 最佳答案 类似这样的吗? var querystring = 'myquerystringtoa
我使用以下代码从 LogIn.aspx 获取 LogedInUser 并将其发送到 Chat.aspx 然后将其发送到 FrmForAjaxCalls 从 Db 返回数据并将其填充到 div 上,但在
我今天在 Web 应用程序中重构一些代码,并在所有网页的基类中遇到了类似的内容: if (Request.QueryString["IgnoreValidation"] != null) {
我想创建一个联系人页面, 我有以下代码: #:Name# #:Surname# 还有两个值(contactNumber 和 Email) 在第一个 View 中,我只显示名称,我想在单击时
大家早上好, 我有一个系统,需要发送一封电子邮件,其中包含我在 JS 中的一些变量。代码一开始对我来说看起来不错,但是 Request.QueryString 没有返回任何内容。我正在尝试使用 Req
在 aspx 页面中我有 anchor 标记。我的 URL 已经有我想重用的 Id 参数。要求是将用户重定向到具有当前 url id 的提及页面,例如 "~/Dir/Home?Id=" & Reque
我使用 request.querystring 只是为了访问我从一个页面传递到另一个页面的参数。 它给了我一个错误。 Non-invocable member 'System.Web.HttpRequ
此问题与上一个问题相关 Passing Variable from page to page using ASP.NET (C#) without using QueryString 我的情况的不同之
我是一名优秀的程序员,十分优秀!