Poszedłem nieco krótszą i szybszą drogą, ale mam 2 małe pytania.
Mój kod wygląda teraz tak:
Wyciągam z tabeli wszystkie kategorie i podkategorie i ładuje je do formularzy. Każdej z opcji podkategorii nadaję klasę o nazwie takiej do jakiej kategorii dana podkategoria należy (kat1, kat2, ...):
<select name="a_firma[branza]" id="select_kategoria">
<option value="0">(wybierz)</option>
{foreach from=$a_kategorie item=a_kategoria}
<option value="{$a_kategoria.id_kategorii}">{$a_kategoria.nazwa_kategorii}</option>
{/foreach}
</select>
<select name="a_firma[podbranza]" id="select_podkategoria">
<option value="0">(wybierz)</option>
{foreach from=$a_podkategorie item=a_podkategoria}
<option value="{$a_podkategoria.id_podkategorii}" class="kat{$a_podkategoria.id_kategorii}">{$a_podkategoria.nazwa_podkategorii}</option>
{/foreach}
</select>
Załóżmy, że jest 5 kategorii głównych. Wtedy w jQuery robię coś takiego:
$('#select_kategoria')
.change(function(){
$('.kat1').hide();
$('.kat2').hide();
$('.kat3').hide();
$('.kat4').hide();
$('.kat5').hide();
$('.kat' + $(this).val()).show();
});
I wszystko działa świetnie tylko jak dynamicznie zliczyć wszystkie kategorie i je ukryć zamiast robić to ręcznie?