【问题标题】:codeigniter attribute/filter systemcodeigniter 属性/过滤器系统
【发布时间】:2014-01-24 00:02:38
【问题描述】:
我已经搜索了很多关于这个问题的答案,但我找不到它们。可能是因为我没有搜索正确的关键字(因为我不知道正确的名称)或者可能没有关于这个主题的资源。
我想在 codeigniter 中为数据库结果构建一个“排序系统”。很像 magento 分层导航或此站点上的排序:http://www.wintersporters.nl/skigebieden。在那里,您可以按价格、国家、斜坡数量等过滤滑雪胜地,结果会通过 AJAX 自动更新。
另一个示例 -> http://www.beslist.nl/products/cddvdrom/cddvdrom_5035278/ 您可以在其中按日期、出版商、流派等进行排序。
我希望系统能够传递多个变量,例如在 wintersporters.nl 上,您可以在其中选择多个国家而不是只选择一个国家,这样您就可以通过选择多个属性来越来越多地缩小搜索范围直到您找到最适合您的滑雪胜地。因此,每次您选择一个选项时,它都会保存在 URL 中。
如何实现这样的目标?通过 $_GET[] 数组,使用 uri 还是完全不同的东西?谁能指出我的教程、sn-p 代码、解释或任何相关内容,因为我找不到正确的方法。
非常感谢!
【问题讨论】:
标签:
php
codeigniter
navigation
【解决方案1】:
我也在考虑组件或控件,它可以为我的门户网站提供相同的功能,但后来我自己开发了 HTML 和 Ajax。
在Ajax中,你可以使用
var checkboxValueArray = [];
var val = [];
$('input[name="subcatcheckbox"]:checked').each(function(i){
val[i] = $(this).val();
checkboxValueArray.push($('#subcat'+val[i]).text());
});
checkboxValueString = checkboxValueArray.toString();
checkboxValueString = checkboxValueString.replace(/\ /g, "-");
checkboxValueString = checkboxValueString.replace(/\_/g, "-");
checkboxValueString = checkboxValueString.replace(/\,/g, ":");
var checkboxValueNumberString = val.toString();
var checkboxValueNumberString = checkboxValueNumberString.replace(/\,/g, ":");
var pathName ='';
if(checkboxValueNumberString != ''){
pathName = "events_categories="+checkboxValueString+"&catid="+checkboxValueNumberString;
}
if(pathName != ''){
window.location.hash = "#!" + pathName;
}
if(pathName == ''){
window.location.hash = '';
}
getEventsParsedJSON(val);
通过这种方式,我在 onClick 事件上创建一个数组,然后通过 window.location.hash(ajax 方法) 将字符串传递给 URL。我在一天内开发了这个。很容易开发。