Az első legördülő menü alapján legyenek a másodikban az adatok
Szisztok!
Olyan gondom problémám lenne, hogy szeretnék létrehozni egy árajánlat kérőt. Az árajánlat kérő űrlapon szerepel két kiválasztő mező. A probléma az, hogy a második mező tartalma függ az első mező tartalmától. Hogy tudom megoldani, hogyha az első legördülő menüből kiválasztok valamit, akkor a második legördülő menüben az elsőhöz tartozó adatok jelenjenek meg.
Én gondoltam az oldal frissítésére, de nem tudom technikailag hogyan tudom megoldani. Előre is köszönöm a segítséget.
■ Olyan gondom problémám lenne, hogy szeretnék létrehozni egy árajánlat kérőt. Az árajánlat kérő űrlapon szerepel két kiválasztő mező. A probléma az, hogy a második mező tartalma függ az első mező tartalmától. Hogy tudom megoldani, hogyha az első legördülő menüből kiválasztok valamit, akkor a második legördülő menüben az elsőhöz tartozó adatok jelenjenek meg.
Én gondoltam az oldal frissítésére, de nem tudom technikailag hogyan tudom megoldani. Előre is köszönöm a segítséget.
3 megoldás
A másik javascript, én ezt használtam pont ugyanilyen probléma megoldására, ekkor az első lista onchange eseményére kell beállítani a javascriptet, annak átadni a kiválasztott értéket, a js-ben pedig ezt lekezelni. Ehhez a javascriptbe az oldal generálásakor le kell generálni az összes választási lehetőséget, így nagy listánál jól megnöveli a HTML kódot, cserébe viszont nem kéred le minden választáskor újra az egész űrlapot.
A harmadik pedig az AJAX, bár ezt nem használtam, amit viszont eddig olvastam róla, erre tökéletes lenne, ekkor is lesz egy lekérés, viszont nem az egész oldalt frissíted, csak a szükséges részt.
Az én olvasatomban ez utóbbi az előbbi kettő kombinációja, de ha rosszul látom vagy tévedek, majd kijavítanak. ;)
Ajax
Az 1. kötelező
ezzel az a gond
üdv t
Egyszerű ahhoz
jaj bocsi
üdv t :)
csak php
üdv. krey
JavaScript
A második listát a script építi fel, az első listában kiválasztottak függvényében.
Itt a kód:
SelectBox = document.getElementById("edit-type");
SubSelectBox = document.getElementById("edit-subtype");
ssb_length = SubSelectBox.length;
for ( i = 0; i <= ssb_length; ++i) {
SubSelectBox.remove(0);
}
if (SelectBox.value == "egyik_lehetoseg") {
SubSelectBox.options[0] = new Option('select type:','seltype');
SubSelectBox.options[1] = new Option('egyik','egyik');
SubSelectBox.options[2] = new Option('masik','masik');
SubSelectBox.options[3] = new Option('harmadik','harmadik');
} else {
SubSelectBox.options[0] = new Option('select type:','seltype');
SubSelectBox.options[1] = new Option('valami','valami');
SubSelectBox.options[2] = new Option('valami mas','vmas');
SubSelectBox.options[3] = new Option('akarmi','akarmi');
}
}
re
elején csak a feldobtam 2 select-et a lényeg ennyi
üdv t
ui: a franc beelőztek :))
ui2: valós életben pl. a kapcsolt select-et a forrás value-ival kéne indexelni (value->id) és úgy kapcsolgatni, ezzel már nem xarakodtam (konkrét megvalósítással)
ui3 : jahh hogy nem ez volt a kérdés :))) (francnak kódolok én vasárnap reggel) de már mindegy, mindjárt megcsinálom amit kértél, legalább lesz egy ilyen class-om is :)
Javascriptes móka
megvan
én is Jano általit javaslom, az ajax menteset, közben persze már a tetszőleges számú select hozzáadásoson gondolkoztam, de azt majd ha megfizettek :)
ha kellene kommentezett verzió szóljatok
üvd mindenkit, a vasárnapi programozás nagy barátja t :)))
ui: hoop leltem egy bug-ot
erre
lapomon javítottam
Ohne Prototype
méret
src='prototype.js.gz' (safarin nem megy)
akkor csak 12,479kb, scriptaculous hacsak a builder ..?loader=builder akkor 6k,
ill. van még jópár mód amivel lehet nyomni a méretét a js cuccoknak, ill. lehet követni a moofx példáját és lite verziókat használni (csak ami az akt kódhoz kell) moofx-en 3k a mérete a prototype lite-nak
üdv t
ui: egyébként miért érdekes annyira, egyszer kell lehúzni 60k-át onnantól gyorstárból megy :P :)
ui2:
nem kicsit, nagyon (honnan ismerős ez a szöveg :D, de most kampánycsend van :))) ) , írj meg egy ilyet cross browser kódbázis nélkül , eredeti js oop-vel
http://ideafontana.com/newgarden/?vpath=/aktualitasok/noveny_kereso/kerti_balkon_novenyek/#
majd tapsolok :) , magyarán arra célzok hogy ez ugyan itt egy kis feladat, de csak rész, a teljes árajánlat kérőben számtalan ilyen lehet, pláne ha a teljes lapot nézzük
ui3: nem energiakérdése, egyrészt ILUVPROTOTYPE :D másrész muszáj sokat gyakorlni, mert üfnek nem adhatok végtelenhez konvergáló óra x bérről árajánlatot :)
selected használata
Az oldal betöltésekor nem jelölődik ki az aktuális elem, pedig a paraméterei közé beteszi a selected-et.
Ellenben ha az 1. listában bejelölök valamit, a 2. listában már működik a selected.
Hogy lehetne rábírni, hogy az első listában is működjön?
Kód ohne Prototype
hihi
(de azért örülök, hogy már kis kódnál is látszik)
üdv t :)
Mi van?
Csak arra akartam felhívni a figyelmet, hogy nem kell mindent Ajaxozni, meg "frameworkolni", bizonyos egyszerű feladatok elvégezhetők úgyis ahogy eddig csináltuk.
nem mondtam ám komolyan
http://opensource.nexum.hu/
ill. ilyen kisérleti dolgokat gyorsan lehet vele írni mint pl. a 'kitujda mire jó' http://www.xml-blog.com/frametastic/index.html -t :))
üdv t
ui: undefined miért van nálad idézőjelben :S
http://htmlinfo.polyhistor.hu/js13ref/toplev.htm#1094680
typeof
Typof stringet ad vissza, azért van idézőjelben, mert stringgel hasonlítom össze.
Core JavaScript 1.5 Guide:Operators:Special Operators typof
köszi
üdv t
szezon-fazon
Mert tudja, hogy mi az a
typeof
operátor? ;)Felhő
igen kedves szerkesztő úr
http://htmlinfo.polyhistor.hu/js13ref/ops.htm#1042603
amit már ismertem de sose használtam, mivel prototype-ban eddig nem volt nagyon rá szükségem, ill. kicsit se lévén
üdv t
lábjegyzet: igazság szerint visszafele tanulom a js-t , kezdve az Ajax in Action c. könyv, hogyan álljunk át js oop-re egyéb nyelvről, át a prototype-scriptaculous-on , és csak most vagyok a http://htmlinfo.polyhistor.hu/js13guide/contents.htm -nél , ezért futok bele ilyen malőrökbe, de ha nem kérdezem meg akkor ugye most se tudnám :) (másrászt IE bugjai elviszik az időt a js tanulástól, és az IE bugjait tanulom a végén meg, nem a js-t :( de azért igyekszem)
ágyú
Talán kiderült, hogy számomra is szimpatikus a prototype, meg a hasonló keretrendszerek, de azért a fenti feladat kb. 10 soros JS scripttel megoldható (példa), ezért tényleg felesleges lehet bevetni egy komplett keretrendszert.
Felhő
re
üdv t
Általános vs konkrét
Anonymous feljebb megadta a választ. Én ezt egy picit általánosítottam, hogy konkrét értékek ne legyenek bele kódolva és paraméterként lehessen mindent átadni. De véleményem szerint ennél tovább menve az már másik feladat lenne.
Javaslom, hogyha szeretnéd folytatni ezt a vitát, akkor índítsunk neki új topikot.
re
üdv t
ui: a rövidlátó, koncepciótlan, feladatorientált kódra egyébként jó példa az állásokban nemrég hírdetett http://www.liligo.fr/air/index.jsp js kódja, FireBug-al megnézhető. Ha idekerül egy új ember akinek a feladata a meglévő js kód továbbfejlesztése ill. karbantartása azt nem irgylem,márpedig sitebuilder-t kerestek és nem véletlenül, nagyon úgynézki, hogy fejükre omlott a kliens oldal :) . Mentségükre szól, hogy 8 hónapja kezdték a fejlesztést és akkor még tényleg nemvoltak crossbrowser kódbázisok megnyugtató verziószámmal elérhetőek.
kalapács szög
Megfordítva: akinek kalapács van a kezében, az hajlamos mindent szögnek nézni. ;)
Felhő
háát
üdv t
Compacting Prototype.js and Scriptaculous
http://www.stevekallestad.com/blog/compacting_prototypejs_and_sc
lehet bekéne blogmarkba is tenni, ha gondoljátok, nemtudom volt-e :)
üdv t
volt
http://weblabor.hu/blog/20060129/cssjstomorites
Viszont IE alatt nem tökéletes, jópár esetben egyáltalán nem találja a tömörített CSS ill. JS fájlt. Kár érte :(