A jQuery szó mi szó a legjobbnak mondható JS keretrendszer napjainkban, azonban azért vannak érdekes dolgai. Ezúttal az AJAX postolás igazi csapdáját fedjük fel, amit már oly sokszor elvétettünk.
Az alapokba nem mennénk bele, hiszen a jquery oldala alaposan tárgyalja az AJAX használatát. Alap esetben ugye van egy formunk, aminek postolt elemeit szeretnénk elküldeni egy PHP számára, ami majd jól feldolgozza. Íme tehát az alap felállású form:
Ezzel tehát kész a form, amivel egy mező tartalmát fogjuk elküldeni a php-nk számára a submitreg() javascript függvénnyel. Már magánál a form felépítésénél azonban vigyáznunk kell egy-két dologra! Ezek pedig a következőek:
NE használjunk type="submit" vagy <button> típusú elküldő gombokat mert mindkettő elpostolja a formot azonnal és nem lesz AJAXunk. Ha mindenképp ilyen gombokat szeretnénk használni rakjuk ki a </form> tagon kívülre ugyanis mindegy hol a gomb az onclick esemény lesz a fontos.
MINDIG adjunk name tagot az elpostolandó mezőnek! Hatalmas galibákat okozhat ugyanis postolásnál lévén a jquery serialize() függvénye csak name paraméterekre bukik, azt dolgozza fel.
Form köré igyekezzünk mindig egy DIV-et rakni nem csak későbbi design céljából, hanem mert így az AJAXunknak lesz egy semlegesnek mondható hordozó DIV-je, amit meghívhat és tartalommal tölthet fel.
Ha ezekre figyeltünk és minden meg van jöhet a világ leg egyszerűbb függvénye, amivel a PHP-nkat meghívva megkapjuk az eredményt és a form helyére kiíratjuk a sikeresen lefutó PHP tartalmát:
Ennyi lenne tehát a függvény. POST-olt elemeinket a sample.php dolgozza fel amiben sima echo ""-zással visszatérő értékeket a jquery .html függvénye bepakolja a formunk kürl található DIV-be. Így a form eltűnik és mi azt iratunk ki a PHP-vel a helyére amit akarunk.
Nah akkor mégeccer, mert eltűnt a kommentem. Tehát én még sose írtam formot name tag nélkül. ugyanis alapból az id mező nem arra szolgál, hogy postolánál a mezőt kiolvassuk. De szerintem an még egy megoldás az imént említett szívásra, bár nem teszteltem. A form tagjában onsubmit eseményt kell figyelni, ekkor használhatunk olyan elküldő gombokat mint a type=submit vagy button. A következő kodrészlettel: <from ... onsubmit="ajaxpostfuggveny(); return false;"> A return false fontos, mert ezzel akadályozzuk meg hogy elpostolódjon hagyományos módon a függvény. Ennyi ki lehet próbálni, asszem régen nekem ez működött.
Zoli
2010/08/19 10:04
Te jó ég hányzsor megszívtam már én is mindig elfelejtem ezt a name kell az inputnak dolgot. Pedig azssem még a jQuery doksijában is benne van! MInden esetre hasznos kis összefoglaló! Thnx
HeNtEs
2010/08/19 01:24
Tehát GeRgO te is tanuld meg egy életre name nélkül nem ér semmit a form serialize() -nél! :D Zsir!
Cégünk által készített weblapokat eddig ennyien látták:
39 779 191
ebből a mai napon 21 819 látogató volt
Miért a TotalStudio?
Nálunk Ön az első Az Ön elképzelései és a mi kreativitásunk illetve szaktudásunk a garancia arra, hogy honlapja vagy grafikai megjelenése olyan legyen amilyenre mindig is vágyott.
Több éves tapasztalat Cégünk munkatársai több mint kilenc éve foglalkoznak webfejlesztéssel, informatikával és szerverüzemeltetéssel, ezen idő alatt mindenre felkészültünk!
Verhetetlen minőség Munkánkban nem ismerünk kompromisszumot! Mindig a legmagasabb minőségre törekszünk. A magunkkal szemben támasztott maximalizmus és a legújabb technológiák használata garantálja, ügyfeleink elégedettségét.
Gyorsaság és megbízhatóság Nálunk nem kell heteket várni, hiszen honlapja akár öt munkanapon belül is elkészülhet a szerződés aláírásától, de a gyorsaság soha nem megy a minőség rovására!