ugrás a tartalomhoz

legördülő lista elemének kiválasztása utáni események

Kela · 2013. Dec. 22. (V), 15.36
Sziasztok!

Nagyon nagyon kezdő vagyok js-ben és kellene egy kis segítség. Van egy legördülő listám months névvel. Azt szeretném, hogy amíg a felhasználó nem választ belőle elemet ne legyen látható az alatta lévő form. Ha rákattint a listából egy elemre akkor előjön a következő form, amit days-nek neveztem el. A bibi csak ott van, hogy a days form az adatokat lekérdezésből kapja.
Tehát index.php-t megnyitja a felhasználó, előtte van egy legördülő lista, kiválasztja a januárt. Majd adott feltételek után egy lekérdezéssel lekér adatokat az adatbázisból amelyeket checkboxal jelenítek meg, belőlük lehet majd választani.
Hogy lehet megcsinálni azt hogy ez egyetlen egy .php fájlban, oldalfrissítés nélkül jelenjen meg?

Előre is köszönöm!
 
1

AJAX

pkadam · 2013. Dec. 22. (V), 20.14
Az AJAX technológia lesz a segítségedre. A select elem change eseményére elküldöd a hónapot a háttérben a szervernek (persze az évet is érdemes lehet), és válaszban egy JSON tömbben visszaadod a lehetséges napokat, amiket kliensoldalon hozzáadsz a formhoz.
2

Ha nem értesz a javascripthez

Hidvégi Gábor · 2013. Dec. 22. (V), 20.27
Ha nem értesz a javascripthez és nem szeretnél magadnak túl sok fejfájást, akkor csináld meg oldalújratöltéssel – így legalább senkinek nem fog fájni.
3

Hogy legyen 3. alternatíva is:

Pepita · 2013. Dec. 22. (V), 20.44
OK, nem megy a js, ismerkedj meg egy jól dokumentált js-keretrendszerrel, pl jQuery.
Akkor viszonylag könnyebben meg tudod valósítani a már említett eseménykezelést és Ajax-ot (JSON nem is feltétlenül kell).
Ha nem megy, akkor Gábornak van igaza: csináld oldaltöltéssel...

Az fontos, hogy amit js-el csinálsz, ahhoz ugye be is kell lennie kapcsolva a kliensnél (legalább figyelmeztesd, ha nincs), valamint a keresőkben nemigen jelenik meg js-el generált tartalom.
4

JSON

pkadam · 2013. Dec. 23. (H), 23.42
Igen, a JSON valóban nem feltétel, de mostanában néhány oldal AJAX-forgalmát megnézve olyan méretű HTML-darabokat küldözgetnek át (gyakran tele inline eseménykezelőkkel), hogy fáj nézni is. Többségében persze ugyanazt a végeredményt lehet elérni, de nem elegáns, felesleges forgalmat generál, több a hibalehetőség, nehezebb átlátni és többcélúan felhasználni. Jó lenne rászokni, hogy AJAX-szal csak konkrét adatokat küldjünk, és a megjelenítést bízzuk a kliensoldalra.
5

Részben igaz

Pepita · 2013. Dec. 24. (K), 00.27
olyan méretű HTML-darabokat küldözgetnek át (gyakran tele inline eseménykezelőkkel), hogy fáj nézni is
Ez egy felől nagyon is igaz, hát még mobilról, menet közben...
Jó lenne rászokni, hogy AJAX-szal csak konkrét adatokat küldjünk, és a megjelenítést bízzuk a kliensoldalra.
Majd akkor, ha a keresők is megfelelően jelenítik meg a JSON adataidat... Szóval ezt csak ott teheted meg, ahol nincs SEO szempont, vagy ahol van, ott a JSON mellé kell js-nélküli, és/vagy HTML-t adó alternatíva is.

Forgalom szempontjából legtöbb esetben valóban a JSON nyer, de ha beleveszed a kliensoldali feldolgozás erőforrásigényét, akkor mobileszközökön megint ott az akksi- vagy akár a memória / proci - probléma, amikre megint a (fél)kész HTML a megoldás.

Persze az inline eseménykezelők arról tanúskodnak, hogy ott bőven van mit optimalizálni...