Keresés

Hirdetés

Aktív témák

  • Protezis

    őstag

    A Kérdések html szerkesztésről topikban vetődött fel az igény egy ajaxos topikra. Íme. Aki nem tudja mi ez, olvassa el ezt: [link]
    Saját szavaimmal, tömören: Az ajaxxal lehetséges egy weboldal egy kis részének módosítása a teljes oldal újratöltése nélkül. Ezáltal rugalmasabb, gyorsabb oldalak építhetők.

    Aki el szeretne indulni, az készüljön fel, hogy mind szerveroldalon, mind kliensoldalon problémákba fog ütközni, és az ajax nem megkönnyítiti, hanem inkább úgy fogalmaznék, hogy megváltoztatja a webes programozást. Komplexebb feladatok elvégzésekor már nehézkesebb például átlátni, hogy egy újonnan betöltendő php-kódban (ami az oldal egy piciny részét fogja megváltoztatni) milyen javascript változók érhetők el. De az eredmény mindenképpen feledteti a nehéz próbálkozásokat, így azt mondom, megéri :)

    Én rövid ismerkedés után egyből a különféle AJAX toolkitekhez nyúltam.
    Aki nem így tenné, illetve a kíváncsiaknak ajánlom ezt: [link]
    Itt pedig rengeteg hasznos link vár rátok: [link]

    Térjünk vissza a toolkitekhez, framework-ökhöz (hogy kell ezt leírni :F ).
    Kliens oldal esetén ezek előre megírt javascript kódok, melyekkel rengeteg időt és munkát megtakaríthatunk. Ilyen pl.: prototype - [link], Dojo - [link], itt pedig egy halom hasonló, illetve szerveroldali keretrendszer linkje elérhető - [link]
    Szerveren nem használok ilyesmiket, eddig saját php kóddal boldogultam.

    Jómagam a prototype-ot használom. Van hozzá egy elég jó dokumentáció magyar fordításban is: [link] Ezt ajánlom olvasgatni.
    Ezenkívül létezik a prototype-ra épülő effektező, csicsásító js, a Rico: [link]
    Szinte mindenhol rendetek példa és demo található. Dokumentációban viszont elég szegényesen állunk, talán ezért is választottam a prototype-ot.

    A napokban egy problémába ütköztem, amit azóta sikerült ''kijavítanom''. Operában nem működtek a js kódok az Ajax.Updater használatakor. A hibát úgy lehet megszüntetni, ha átírjuk a js fájlban az evalScripts függvényt. A megoldás itt található: [link]

    Várom a kérdéseket, tapasztalatokat, linkeket, saját oldalakat. Jó programozást! :)

    [Szerkesztve]

  • Protezis

    őstag

    válasz Tele von Zsinór #3 üzenetére

    Nem értem, miért lenne erre szükség (de azt se, mire gondolsz)
    Elmondom az én javaslatomat: vegyünk egy php fájlt. Ez kap url-ben egy változót, hogy hanyadik képtől listázzon. Ez a fájl a megadott képtől kiír mondjuk 9 képet.
    Ezenkívül van a galériád, amiben van egy nagy div, amiben a képeket látod. Rákattintasz, hogy következő oldal, akkor szépen létrehoz egy (protoype-ra gondolok) objektumot, melyben a paraméter a korábbi paraméter + 9. Meghívja a php-t, és az eredményt megjeleníi a nagy divben. Ennyi az egész. (azt is elárulom, hogy az Ajax.Updater osztályt kell használni)

  • Protezis

    őstag

    válasz Tyrael #5 üzenetére

    Azt értem, mit akar megvalósítani, csak azt nem, hogyan.
    A prototype magyar dokumentációját tényleg ajánlott olvasgatni. Tele van példákkal. 1-2 óra után működő ajax tesztoldalt létre lehet hozni (feltéve, hogy az illető konyít js-hez és mondjuk php-hez)

    A kérdéséből kiderül, nem igazán érti, hogyan is működik az egész (szerintem hasonlóan akarná a képeket felhasználni, mint ahogy css fájlban is eltárolhatunk egy képet)
    Ez ennél azért egyszerűbb. Ilyen tekintetben hasonlít a framekhez (iframe-hez)

    Mod: Ha nem érteném, nem adtam volna megoldást a problémájára ;)

    [Szerkesztve]

  • Protezis

    őstag

    válasz Tele von Zsinór #8 üzenetére

    Elég rendesen félreértelmezed.

    Alapból lenne egy ilyen hívásod, az 1.jpg képet akarod megjeleníteni.
    showimg.php?sorszam=1

    A php pedig mindösszesen ennyit csinál:
    print ''<img src=\''''.$_GET['sorszam';].''.jpg\''>'';

    Az oldalban, ahol meghívtad, ott pedig nem linkként hívod meg a fenti url-t (nem href-ben), hanem létrehozol egy Ajax.Updater objektumot, abban beállítod az url változót showimg.php-re, a paramétert megadod sorszam=1-re, beállítod, hogy get kérés lesz, valamint megadod a div id-jét, ahová beakarod tölteni a showimg.php által visszaadott html kódot. Vagyis mikor rákattintasz a következő kép linkre, akkor egy javascript hívást kell csinálni, ami majd szépen elvégzi a php fájl meghívását.

    De mint mondom, a prototype magyar nyelvű dokumentációjában lefelé görgetsz 13 -szor, és ott lesz egy szemléletes példa az Ajax.Updater használatára (a link az 1. hsz-ben, de itt van újra: [link]). Ennél jobban nem tudom elmagyarázni, max ha megírnám (amit ennyi idő alatt meg is tehettem volna)

    Mod: Az Ajax.Updater osztály ( a prototypeban) direkt akkor jó, ha html kódot kapunk a szervertől

    [Szerkesztve]

  • Protezis

    őstag

    válasz Tele von Zsinór #12 üzenetére

    Pontosan. De maga a kép átküldése helyett a html kódot kell utaztatni a szerver és a kliens között (persze utána majd letölti a kliens a képet).

    Tyrael: simán lehet ;)

  • Protezis

    őstag

    válasz Forest_roby #30 üzenetére

    akkor csinalsz egy ilyet:
    $_SESSION['nev' ] = $nev;
    $_SESSION['cim' ] = $cim;


    a session_start fuggvenyt mindig meg kell hivnod, ha hasznalni akarod a sessionoket.


    Egyik kotelezoprogramomat bemutatnam itt, leven ajax hivasokat hasznal, prototype fuggvenykonyvtar segitsegevel. [link]
    Nev: admin, jelszo: admin

    Ha valakinek valamilyen kerdese lenne, szivesen valaszolok. Az oldalon termeszetesen sok dolog nincs megvalositva, esetleg nem hatekonyan mukodik, de kotproginak boven eleg volt.

    Remelem rosszandeku emberek nem durjak szet. ( bar tul sok kar nem erne)

    Akar konkret forraskodot is kozzetehetek, ha erdekel valakit (bar eleg csunya lett...)

    [Szerkesztve]

  • Protezis

    őstag

    válasz RedAnt #33 üzenetére

    Nagyon alap dolgokhoz nyilvan nem kell. Viszont ha egy picit is tobbet akarsz, szerintem erdemes valamelyiket hasznalni. (Pl szabalyozni lehet, hogy a betoltott tartalomban lefussanak -e a scriptek. Ezt mar nem lenne kedvem megirni) En csak egy nagyon kis reszet hasznalom a prototypenak, de szerintem mar ekkor is megeri hasznalni. Egyreszt, nincs vele annyi szivas, masreszt nalam okosabbak irtak, valoszinuleg jobb is lett, mintha en csinaltam volna, harmadreszt rengeteg hasznos dolog van meg benne, ami nem kapcsolodik az ajax-hoz, de megkonnyiti a javascriptes eletunket.

    Elegcsak atfutni a manualt, nagyon erdekes lehetosegek allnak rendelkezesunkre.
    pl.:
    $A, Ajax.Responders, Ajax.PeriodicalUpdater, Field objektum, Form objektum, stb.

    A sajat js fajlomban a prototypeot hasznalom. Az altalam definialt fuggvenyeket hivom meg az oldalrol. Ezek a fuggvenyek vegzik el az ajax hivasokhoz az elokeszuleteket (url osszerakasa, megfelelo osztaly peldanyositasa, cel megadasa, ahova az uj tartalom kerul stb.)

    Raadasul ott a Dojo, amivel szep effekteket csinalhatunk az oldalra. Ehhez pedig kell a prototype. De a napokban neztem meg az Adobe Spy framworkot, es nagyon jonak tunik. [link]

    Szerintem nezegesd meg, melyik fuggvenykovtar mit tud, gondold at mire van szunkseged, aztan amint rajosz, hogy lusta vagy olyanokat irogatni, amiket masok mar megirtak, be is izzithatod valamelyiket. :D

  • Protezis

    őstag

    válasz Forest_roby #34 üzenetére

    Ugy latom, neked nem a megvalositassal, hanem magaval a mukodessel van gondod.
    Leirom, hogy zajlik az ilyesmi.

    Megadod a neved, jelszavad. Rakatt a belepesre. Az meghivja az action.php fajlt, get parameterekben a nevet, jelszot:
    action.php?nev=csongor&jelszo=zsiguli
    Az action.php megnezi, letezik -e ilyen nevu felhasznalo ilyen jelszoval. Ez egy pl. mySQL lekeressel elerheto, de legyen te esetedben statikusan, benne a forrasban.

    action.php:

    <?php
    session_start();
    if (isset($_GET['nev' ]) && isset($_GET['jelszo' ]) && $_GET['nev' ] == 'csongor' && $_GET['jelszo' ] == 'zsiguli') {
    $_SESSION['nev' ] = 'csongor';
    $_SESSION['jelszo' ] = 'zsiguli';
    }
    header(''Location: index.php'');
    ?>


    Mikor az index.php-t betoltjuk, a szerveren egy fajlban mar letezik az adott felhasznalo neve es jelszava, felteve, hogy sikeresen bejelentkezett.

    <?php
    session_start();
    if (isset($_SESSION['nev' ]) && isset($_SESSION['jelszo' ])) {
    print $_SESSION['nev' ];
    print $_SESSION['jelszo' ];
    } else {
    header(''Location: login.php'');
    }
    ?>


    kijelentkezesnel hivd meg a
    session_destroy() fuggvenyt.

  • Protezis

    őstag

    válasz Forest_roby #37 üzenetére

    Az isset() fuggvennyel ellenorzod, hogy egyaltalan letezik -e az adott valtozo.
    Oszinten most nem tudom, mi van, ha nem ellenorzod, es a megfelelo valtozok nelkul hivod meg az action.php-t. Valoszinuleg hibat dob.
    Az emlitett if felteleleben mivel minden feltetel ES-elve van, amint nem teljesul valamelyik, a php motor a tobbit mar nem is ellenorzi (vagyis csak gondolom, nem vagyok nagy php-s, C-ben igy van, szerintem itt is)

    A peldat nem probaltam ki, itt hoztam ossze, szoval nem 100%, hogy mukodik, de ha mar erted a dolgot, akkor celba ertunk.

    Igen, a header-rel tudsz automatikusan masik oldalt betolteni. Ezen kivul ''barmilyen'' tartalmat is atadhatsz vele a bongeszonek, pl pdf-et, stb.
    Ekkor termeszetesen be kell allitani a kodolast, a tipust, miegymast.

  • Protezis

    őstag

    válasz SEK3 #44 üzenetére

    Az AJAX neve is utal ra, hogy javascript ismeretek nelkul nem igazan fogod tudni hasznalni: [link]

    Mielott ajaxxal kezdesz foglalkozni, ismerkedj meg a javascripttel, es egy szerveroldali nyelvvel (pl. php). Ha HTML-lel se vagy tisztaban... akkor nagyon eltevedtel.

    Nem akarlak megbantani, de olyan ez, mint amikor a lelkes fiatalok elhatarozzak, hogy irnak egy fps jatekot ugy, hogy azt se tudjak, mi az a valtozo.

  • Protezis

    őstag

    válasz SEK3 #46 üzenetére

    Eloszor talan valamilyen szerver oldali nyelvvel ismerkedj meg. Ajanlom a PHP-t. Ha megy a dinamikus tartalom eloallitasa (ez ugye szinkron kommunikaciot jelent a kliens es a szerver kozott), akkor lephetsz meg egy lepcsofokot, es johet a javascript, es az aszinkron kommunikacio, vagyis az ajax.

Aktív témák