Witam! Mam następujący problem. Posiadam 2 listy rozwijane. Pierwsza z nich jest tworzona dynamicznie w taki sposób:
$zapytanie = 'SELECT id_kategorii, nazwa_kategorii FROM kategorie';
$wyniki = $baza->select($zapytanie);
echo 'Wybierz kategorię:<span id="kat"><select>'; foreach($wyniki as $wiersz)
{
echo '<option>'.ucfirst($wiersz['nazwa_kategorii']).'</option>'; }
Chcę, żeby druga lista tworzyła się również dynamicznie na postawie wybranej wcześniej kategorii, tyle że miałaby ona pokazywać listę podległych jej podkategorii.
Ogólnie mówiąc: Wybieram z listy kategorię; pokazuje mi się lista podkategorii.
Dodatkowo dorzucę trochę SQL'a żeby wszystko było jasne:
CREATE TABLE IF NOT EXISTS `kategorie` (
`id_kategorii` int(11) NOT NULL AUTO_INCREMENT,
`nazwa_kategorii` varchar(100) collate utf8_polish_ci NOT NULL,
PRIMARY KEY (`id_kategorii`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=4 ;
INSERT INTO `kategorie` (`id_kategorii`, `nazwa_kategorii`) VALUES
(1, 'historia'),
(2, 'biologia'),
(3, 'zapowiedzi');
-------------
CREATE TABLE IF NOT EXISTS `podkategorie` (
`id_podkategorii` int(11) NOT NULL AUTO_INCREMENT,
`nazwa_podkategorii` varchar(100) collate utf8_polish_ci NOT NULL,
`id_kategorii` int(11) NOT NULL,
PRIMARY KEY (`id_podkategorii`),
KEY `id_kategorii` (`id_kategorii`),
KEY `id_kategorii_2` (`id_kategorii`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=6 ;
INSERT INTO `podkategorie` (`id_podkategorii`, `nazwa_podkategorii`, `id_kategorii`) VALUES
(1, 'opowiadanie', 2),
(2, 'powie\u015b\u0107', 1),
(3, 'historyjka', 2),
(4, 'bajeczka', 1),
(5, 'zapowiedzi', 3);
ALTER TABLE `podkategorie`
ADD CONSTRAINT `podkategorie_ibfk_1` FOREIGN KEY (`id_kategorii`) REFERENCES `kategorie` (`id_kategorii`) ON DELETE NO ACTION ON UPDATE NO ACTION;