W selekcie wybieramy sobie jakąś opcję i po submit dodawany jest odpowiedni filtr (ten ktory wybralismy), calosc jest trzymana w ciachu.
Robię sobie taką operację:
(function($){
var filterManager = {
filters: [],
init: function() {
this.getFilters();
this.bind();
this.displayFilters();
},
resetFilters: function() {
document.cookie = 'debt_filters=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
},
getFilters: function () {
var nameEQ = "debt_filters=",
ca = document.cookie.split(';'),
json_str;
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) json_str = c.substring(nameEQ.length,c.length);
}
this.filters = typeof json_str === "undefined" ? [] : $.parseJSON($.parseJSON(json_str));
},
setFilter: function () {
var json_str = JSON.stringify(this.filters);
document.cookie = 'debt_filters'+"="+json_str+"; expires=''; path=/_cms2/debt_collection/invoice_list.php";
},
displayFilters: function() {
var $container = $(".debt_filters"),
f = this.filters;
for(var i = 0; i < f.length; i++) {
$container.find("[id*='" + f[i] + "']").closest('.form_group').css('display', 'inline-block');
}
},
bind: function() {
var self = this;
var $container = $(".action_block");
$("#debt_collection_search").click(function(e) {
var $select = $container.find("#add_filter");
var id = $select.val()
self.filters.push(id);
self.setFilter();
});
}
};
filterManager.init();
})(jQuery);
Tak jak w temacie, nie mam zielonego pojęcia jak znaleźc inne rozwiązanie tej sytuacji..