W JS raczkuję. Mam taki skrypcik poniżej:
const dvdFields = document.getElementById('dvdFields'); const bookFields = document.getElementById('bookFields'); const furnitureFields = document.getElementById('furnitureFields'); const selector = document.getElementById('productType'); selector.addEventListener("click", () => { selector.addEventListener("change", () => { switch (selector.value) { case "DVD": dvdFields.style.display = 'block'; bookFields.style.display = 'none'; furnitureFields.style.display = 'none'; break; case "Book": bookFields.style.display = 'block'; dvdFields.style.display = 'none'; furnitureFields.style.display = 'none'; break; case "Furniture": furnitureFields.style.display = 'block'; dvdFields.style.display = 'none'; bookFields.style.display = 'none'; break; default: furnitureFields.style.display = 'none'; dvdFields.style.display = 'none'; bookFields.style.display = 'none'; } }); });
Skrypt wyswietla lub chowa diy w zalezności od tego co mamy wybrane w SELECT. Żadne rocket science. Ale teraz wypadałoby aby wartości book, dvd, furniture nie były wpisane ręcznie, ale żeby ładowały się z bazy. Obecnie w bazie mam 3 rodzaje produktów, ale jak będzie ich 300... ?
Tak więc, jeśli rodzajów produktów będzie więcej to i case'ów powinno być automatycznie więcej. Jesli dodam do bazy rodzaj produktu 'sanki' no to powinien się dodać nowy case gdzie 'sankiFields' jest display:block a reszta ma 'none'.
Oczywiście wiem jak to zrobić w php, ale wrzucanie phpa do pliku js, lub trzymanie skryptu js w pliku *.php to chyba nie jest najlepsza praktyka. Pomóżcie jak to zrobić po bożemu.
Dzięki.