Evo ti neko rešenje kad si toliko zapeo, a ako budeš imao problema postavi
ceo primer na
https://jsfiddle.net/ da bi neko mogao da ti pomogne.
Code (javascript):
$.urlParam = function(name) {
// Returns value of specified URL parameter
var results = new RegExp("[\?&]" + name + "=([^&#]*)").exec(window.location.href);
if (results == null) return null;
return decodeURI(results[1]) || null;
}
function restoreFilter() {
// Get filter values from URL
var filterParam = $.urlParam("filter");
if (filterParam == null) return;
var filterValues = filterParam.split(",");
// Set selected options
$("option").each(function() {
var option = $(this);
var selected = jQuery.inArray(option.val(), filterValues) !== -1;
option.prop('selected', selected);
});
}
// Restore filter from current URL
restoreFilter();
Što se tiče URL parametara i ID-eva u select-ovima, odavno nisam video gori pristup.
Umesto da svakoj vrednosti dodeliš poseban parametar u URL-u kao što ceo svet radi,
ti si sve to spakovao u jedan parametar "filter" gde čak ni indeksom ne možeš da znaš o kojoj vrednosti se tačno radi.
To je kao da u javaScript-u umesto pet varijabli imaš jednu varijablu sa nizom vrednosti gde je vrednost za npr. "Proizvodjac"
nekada na prvom mestu, nekada na trećem, nekada je i nema...
U select-ovima je još gore, umesto da opcijama dodeliš neke prirodne ključeve ili tehničke ID-eve iz baze,
ti si im dodelio vrednost globalnog indeksa (globalno redni broj pojave opcije u HTML-u).
Šta se desi sa URL-om koji je juče vodio na gume 205/65/R16 ako danas ubaciš novu širinu 125?
Taj tvoj URL od juče će danas da me odvede na 195/60/R15...
Ljudi bi ti možda i pomogli ali kada vide ovakve "budževine" ne žele ni da se bakću dalje.
A ovaj tvoj problem sa restore filter-a upravo i jeste zakomplikovan zbog "budževine" a i rešenje koje sam ti dao je "budževina".
Moj predlog ti je da staviš ove stvari oko URL-a i select-ova na zdravu osnovu, što pre tim bolje, inače ćeš samo "budžiti" nadalje.
Na kraju, i treći problem ... šta je na serveru?
Ovo sa selektovanjem opcija se obično odradi na serveru a ne na klijentu i js...
[Ovu poruku je menjao dusans dana 23.04.2016. u 12:01 GMT+1]