2014-01-24 209 views
1

我已經搜索了很多這個問題的答案,但我找不到它們。也許是因爲我沒有搜索正確的關鍵字(因爲我不知道正確的名稱),或者可能沒有關於此主題的資源。codeigniter屬性/過濾系統

我想在codeigniter中爲數據庫結果構建一個'排序系統'。就像這個網站上的magento分層導航或排序:http://www.wintersporters.nl/skigebieden。在那裏,您可以按價格,國家,斜坡數量等篩選滑雪勝地,結果通過AJAX自動更新。

另一個示例 - >http://www.beslist.nl/products/cddvdrom/cddvdrom_5035278/您可以按日期,出版商,流派等排序。

我想讓系統能夠傳遞多個變量,比如在wintersporters.nl中,您可以選擇多個國家而不是一個國家,這樣您就可以通過選擇多個選項來縮小搜索範圍屬性,直到你找到最適合你的滑雪場。所以每次你選擇一個選項時,它都會保存在URL中。

我該如何做到這樣?通過$ _GET []數組,使用uri或完全不同的東西?任何人都可以指向我的教程,代碼片段,解釋或任何相關的,因爲我找不到正確的方式來做到這一點。

我會很感激!

回答

0

我也在考慮組件或控件,這些組件或控件會爲我的門戶網站提供相同的功能,但後來我通過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。我在一天內開發了這個。開發很容易。