Autor | Zpráva | ||
---|---|---|---|
Hologos Profil |
#1 · Zasláno: 5. 7. 2010, 11:41:46
Zdravím,
mám jeden takový problém. Popíši současné řešení: Mám formulář, kde je <select> dynamicky generován z databáze (seznam položek). To slouží k výběru a uložení dané položky + počtu do databáze. Při používání jsem ale zjistil, že potřebuji zadat víc věci najednou do databáze. Je to tak rychlejší (a je to potřeba). Proto mě napadlo, že tomu selectu nastavím událost na onChange, a ta vytvoří další řádek (text, <select>, text(počet), <input>, kam se dává počet.) V tuto chvíli mám 2 problémy. Šel jsem na to přes JavaScript a DOM. Ale pokud jsem přidal výše zmiňované, přidal jsem to až na konec. (Ilustrace) Položka: <select> Počet <input> <send button> Položka: <select> Počet <input> A kdyby se to tedy povedlo, jak mám zařídit, aby se ten <select> naplnil daty z DB (jak na to jít např. přes AJAX). Nechci ale, abych si JavaScript generoval do stránky (tzn <script> vygenerovat data do funkce </script>) Zatím to mám řešené tak, že jsem si vygeneroval 10 polí, 9 z nich skryl a události onChange na stavil fci, která mi odhalí následující <select>. 1. je pak povinný a další můžou být volná (pokud však je vybráno něco ze <select>, tak se už pak musí zadat i počet). Díky |
||
Honza_n Profil * |
#2 · Zasláno: 5. 7. 2010, 12:08:05
Použíj Jquery. Zrovna tuto záležitost řeším taky.
Dám ti tady ukázku toho co mám já: $(document).ready(function() { dr=$("select[name=druh]"); ro=$("select[name=rod]"); ci=$("select[name=cislo]"); sk=$("select[name=skupina]"); vz=$("select[name=vzory]"); dr.change(function () { $(dr,"option:selected").each(function () { nastav_vzory(); }); }) Po načtení dokumetu se do proměnných uloží odkaz na jednotlivé prvky (selecty). dr.change() říká, že když změním select s názvem "druh" má se provést uživatelem definovaná akce. Na odebrání starých voleb použiju vz.children().remove(); Pak je jen třeba přidat nové volby Což dělám pomocí cyklu for(var i=0;i < vzory.poj[zkratka].length;i++) s+="<option value="+i+">"+vzory.poj[zkratka][i][0]+vzory.poj[zkratka][i][0]+"</option>\n"; Query musíš načíst jako modul |
||
ah01 Profil |
#3 · Zasláno: 5. 7. 2010, 15:48:02
Honza_n:
Stejný dotaz, jako vedle. Jsi si jistý, že „$(dr,"option:selected")“ dělá to co chceš? |
||
Časová prodleva: 14 let
|
0