AJAX értéket adna egy PHP változónaak az oldal újratöltése nélkül!
Sziasztok!
Elkerülhetetlenül haladok végzetem felé, és bár egy hónappal ezelőtt még félresöpörtem ezt az AJAX témát, most már nem tehetem!
Az útmutatásotok alapján azt már megértettem (remélem jól értettem), hogy ezzel az eljárássel, az oldal kérést tud küldeni a szervernek és választ kapni rá, anélkül hogy az oldalt újra töltené.
Ha ez valoban így van, akkor AJAX-al betöltődés után (közben) hozzá lehet adni a $_GET tömbhöz új változót értékkel együtt?
Pl: Ha felbontés: 800x60 akkor $_GET["res"] = 0 ha 1024x768 akkor $_GET["res"] = 1 és ha nagyobb mint 1024x768 akkor $_GET["res"] = 2
Várom válaszotokat, üdv:
s_volenszki
■ Elkerülhetetlenül haladok végzetem felé, és bár egy hónappal ezelőtt még félresöpörtem ezt az AJAX témát, most már nem tehetem!
Az útmutatásotok alapján azt már megértettem (remélem jól értettem), hogy ezzel az eljárássel, az oldal kérést tud küldeni a szervernek és választ kapni rá, anélkül hogy az oldalt újra töltené.
Ha ez valoban így van, akkor AJAX-al betöltődés után (közben) hozzá lehet adni a $_GET tömbhöz új változót értékkel együtt?
Pl: Ha felbontés: 800x60 akkor $_GET["res"] = 0 ha 1024x768 akkor $_GET["res"] = 1 és ha nagyobb mint 1024x768 akkor $_GET["res"] = 2
Várom válaszotokat, üdv:
s_volenszki
jáááj
http://htmlinfo.polyhistor.hu/ajax/index.html
üdv t :)
ui: egyébként a legbézikkeb példát ide bepötyögtem http://weblabor.hu/blog/20060822/ajax-fejlesztes#comment-32600
Bocsi
Most már csak a feladatomra kell koncentrálnom! Esetleg valami ötlet? Ilyen "Itt művelödj" még jöhet!
Köszi
ps: Ez az AJAX ez egy hatalmas dolog!
Igen, de minek
De speciel a $_GET tömböt miért kellene bántani? Hisz épp te mondtad, hogy az oldalt nem töltöd újra! Hasznájl inkább session-változókat, azok tuti megmaradnak a hívások között is, szóval legközelebb, ha a júzer kattint a lapon, akkor ki tudod majd olvasni.
Azt hiszem abba a tipikus hibába estél, hogy nem a problémádat írtad le és arra keresel megoldást, hanem egy általad esetleg hibásan feltételezett megoldás részleteit firtatod, de nem tudjuk mi is a kérdés valójában.
Kérdezz újra!
Norbi
Lehet PHP változókaz is macerálni...
Probléma:
Az oldal újratöltődése nélkül kellenének a felbontásfüggő (amit már irtam 800x600=0, 1024x768=1,nagyobb mint=2) értékek, és azért kellene php változóban, mert különböző adatbázis műveletek tartoznának az értékekhez.
Már elindultam egy gondolaton, de hogy megint ne vigyem magam a zavarosba leírom:
Oldalbetöltésnél js-el egy fom szövegmezőjének értékét megfeleltetem az aktuális felbontáshoz tartozó értékkel. AJAX elküldi a formot egy php-nek, ami beírja db-be az értéket, majd a főoldal db kilvasó rutinja azzal kezd, hogy kihalássza ezt az értéket, és tudja hogyan tovább.
A problémám ezzel megoldódna, ha nem állna fenn a lehetősége annak, hogy közel ugyanabban az időben két különböző felbontású kliens nyitja meg az oldalat! Ekkor előfodulhat, hogy azzal az értékkel tér vissza az adazbázis lekérdezés amit a másik kliens írt be miközben az én oldalam töltődött.
A megoldás az lenne ha egyedi azonosítója lenne ennek a rekordnak (pl.: lastinserted_id), na de akkor ennek vissza kellene jutnia az oldalra AJAX után, php változóba (ez alapján keresne a db-ben felbontáskódot) és ezzel az erővel visszajöhetne a felbontáskód mindenféle mysql hókuszpókusz nélkül és indulhatna a lekérdezés!
Van ötleted?
Felbontásfüggetlen dizájn
Ez a dolog természetesen kiváltható AJAX-szal is
II. Ha a felbontástól függően szeretnél az oldalon tartalmat megjeleníteni. Pl: a 800x600-ban netezőknek egy shopban 19-es monitort ajánlani, az 1024-eseknek pedig inkább processzort, akkor ezt egy oldaltöltés segítségével nem tudod megtenni, mert akkor még a fellbontás adat nem áll rendelkezésre.
Időben a következő történik:
1) Lekéred az oldalt a szervertől és válaszol (ekkor adja ki a szerver azt a javascriptet is ami le fogja kérdezni a méretet). A válasz közben már nem tudsz pontosítani a lekérésen! Azt a szerver befejezni és lényegében elfelejti, hogy veled foglalkozott. (Ez hívják állapotnélküliségnek.)
2) A kliensnél lefut a javascript mindegy, hogy az oldal még töltődik-e vagy már teljesen letöltődött, ha akár új oldalt akarsz lekérni, akár csak AJAX-szal fordulsz a szerverhez az egy teljesen új kérésnek fog számítani, ami teljesen független az előzőtől.
3. Lefutott a script, tudod mekkora felbontás, ekkor AJAX segítségével megtudod tenni, hogy az oldalon kicserélj bizonyos dolgokat. Pl, hogy mit ajánl.
Az Ajax kérés valójában a szerver szempontjából pontosan ugyanolyan kérés mint egy oldal letöltés, csak te kezeled máshogy. Az aszinkronitás pedig azt jelenti, hogy amikor a script elküldi az XHTTPRequest objektum segítségével a kérést akkor nem áll meg ott és vár addig, amíg vissza nem kapja, hanem fut tovább. A válasz érkezését pedig egy eseménykezelővel tudod valamikor később feldolgozni.
Ebből látható, hogy bonyolult felbontás függő oldalt csinálni. ÉS akkor még arról nem is beszéltünk, hogy a user átméretezheti közben az oldalt stb.
Ha nem a tartalom, hanem a kinézet miatt kéne a felbontás adat, akkor azt javaslom, hogy a CSS lehetőségeivel érd be (%-os méretek stb).
AJAX PHP
s_volenszki