Autor Zpráva
Tomáš Zámocký
Profil *
Zdravím Vás, chcel by som sa poradiť s problémom, na ktorý som narazil.
Vytváram filtre pre nás eshop, filter poďla výrobcu, farby, použitia.. etc.. Produkty sa filtrujú podľa URL. napriklad:

http://www.domena.sk/?vyrobca=1,2,3,4&farba=8,4,5&pouzitie=12,34

Čísla v url su IDčka parametrov v DB. Tieto filtre by sa volili cez checkboxy. Spravil som si na to JS funkciu:

function changeParamUrl(paramtype, paramvalue) {
    var location = new String(window.location);
    if (paramvalue != -1) {
        if (location.match(paramtype)) {
            var replaceexp = new RegExp ('(' + paramtype + '=)[0-9]*', 'g');
            location = location.replace(replaceexp, '$1' + paramvalue);
        } else {
            if (location.match(/\?/)) {
                location += '&'
            } else {
                location += '?'
            }

        }


        window.location = location;
    }
}

Táto funkcia zmení daný parameter za hodnotu ID. Ale nedarí sa mi spraviť tú funkciu tak, že ak sa už hodnota daka nachádza, tak sa pridá k tej, ktorá už je zvolená. Napr. ak je v URL vyrobca=1 tak aby sa pridalo vyrobca=1,3. A v prípade, že je už daná hodnota v URL, aby ju odstránila.

Túto funkciu volám cez checkbox: onchange="changeParamUrl('vyrobca',1);" alebo onchange="changeParamUrl('farba',12);"

Vedel by mi ju prosím niekto pomôcť upraviť? Vrelá vďaka
candiess
Profil
Tomáš Zámocký:
No určitě bych použil metodu pole, tj example.com/?farba[5]=5&farba[13]=13&vyrobca[3]=3&vyrobca[6]=6

Pak bych si získal jednotlivá pole a pokud by se parametr v poli již objevil, tak odstranit, složit url a přesměrovat. V opačném případě přidat do pole a přesměrovat. Snad jsem dobře nakopl :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0