ugrás a tartalomhoz

AJAX értéket adna egy PHP változónaak az oldal újratöltése nélkül!

s_volenszki · 2006. Szep. 15. (P), 11.08
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
 
1

jáááj

toxin · 2006. Szep. 15. (P), 11.46
itt művelődj egyet lécci :) elösször

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
2

Bocsi

s_volenszki · 2006. Szep. 15. (P), 12.40
Azt már "értem" :), hogy mire való az AJAX!

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!
3

Igen, de minek

Anonymous · 2006. Szep. 15. (P), 12.44
Szóval hogy a kérdésedre is kapj közben választ: lehet akár PHP változókat is macerálni az AJAX hívás közben, ha a kérést egy PHP szkriptnek küldöd.

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
4

Lehet PHP változókaz is macerálni...

s_volenszki · 2006. Szep. 15. (P), 13.04
Tökéletesen igazad van, hiszen én a saját elképzelt megoldásomba kevertem AJAX-ot. Az elképzelésem az hogy egy oldalon újratöltődés nélkül szükségem van a már fent leírt felbontásfüggő változók értékére. Már átolvastam a kolléga álltal javalt anyagot és nagyjából kitisztult az AJAX miértje. De a megoldást még mindíg nem látom.

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?
5

Felbontásfüggetlen dizájn

Jano · 2006. Szep. 15. (P), 13.37
I. Ha csak arra van szükséged, hogy statisztikát vezess arról, hogy milyen felbontással nézik az emberek az oldalaidat akkor ezt úgy szokták csinálni, hogy egy statisztika képet kérnek le, és ebbe a lekérésbe beleillesztik az URL-be a paremétereket. Tehát a statisztika kép lekérését egy js írja ki, teszi be DOM-mal, mindegy.

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).
6

AJAX PHP

s_volenszki · 2006. Szep. 15. (P), 14.40
Megértettem, alapjaiban az AJAX működését, és ezzel megértettem hogy miért nem tudok felbontáshoz kötött tartalomfüggőséget újratöltődés nélkül! Köszönöm a segítségeteket!

s_volenszki