| Autor | Zpráva | ||
|---|---|---|---|
| ManasPetr Profil * |
#1 · Zasláno: 22. 4. 2021, 19:00:27
Zvažoval jsem nad JSON a načtením dat, ale přišlo mně to zbytečně složité. V podstatě potřebuji udělat:
<select class="custom-select" name="stitekvelikost" id="stitekVelikost" required=""> <option value="">Vyberte počet oken</option> <option value="1">24 oken</option> <option value="2">16 oken</option> <option value="3">12 oken</option> </select> Na základě výběru pak potřebuji vypsat druhý select, ve kterém budou option od 1 do 24 nebo 16 nebo 12 oken. Tohle prostě asi řešit přes JSON je snad hloupost ne? Poradíte jak na to? |
||
| Kajman Profil |
#2 · Zasláno: 22. 4. 2021, 19:12:28
JSON je formát dat. Klidně si v něm všechny vazby zadefinujte a dejte hned do stránky, abyste to nemusel donačítat postupně.
|
||
| ManasPetr Profil * |
#3 · Zasláno: 22. 4. 2021, 19:29:11
Dobře, děkuji. Pro jistotu přikládám příklad, který zřejmě použiji: Živá ukázka
|
||
| anonym_ Profil * |
#4 · Zasláno: 22. 4. 2021, 20:27:57
ManasPetr:
Pokud je v prvním selectu málo možností, tak je rozumnější mít v DOMu všechno hned a jen mezi tím přepínat ( display). Pokaždé parsovat JSON je zbytečné (a může být pomalé).
|
||
| ManasPetr Profil * |
#5 · Zasláno: 22. 4. 2021, 21:56:14
Nedal by se druhý SELECT udělat tak, že u prvního select by se přidal druhý atribut, který by určil celkový počet výpisu options v druhém select?
Tedy přesněji. U prvního selectu vyberu třeba <option value="2" dataWin="16">16 oken</option> a u druhého SELECT, kde je výpis všech 24 options, by se prostě zobrazilo jen 16?
Bohužel v tomto směru nevím, jak bych tohle řešil v jQuery. |
||
| Keeehi Profil |
#6 · Zasláno: 22. 4. 2021, 23:51:30
ManasPetr:
Na option se dá použít display: none; a ze seznamu zmizí (alespoň v chromu, nevím jak tohle zvládne třeba starý IE) Živá ukázka
Nevím, proč nemůžeš mít jen jeden select s možnostmi 1-24 a musíš k tomu mít ještě jeden který z toho seznamu jen něco skryje. Jelikož si tedy nedovedu představit reálnou aplikaci, nemohl jsem přijít na vhodné pojmenování druhého selectu, takže je tam placeholder foo. Nahraď si to něčím inteligentním. |
||
|
Časová prodleva: 5 let
|
|||
0