Az alábbi oldalon előkészítjük az AJAX hívásokkal kapcsolatos fogalmakat.
Tömbök
A javascriptben használhatunk tömböket, amelyekkel hasonló műveleteket lehet végezni:
var t = [első elem , második elem, harmadik, elem, ......]; // tömb deklarációja. Az első elem indexe 0 lesz.
document.write( t[3] ); //A 4. elem, azaz a 3-as indexű elem kiiratása
//Egy tömb összes elemének kiiratása
for(var i=0; i<t.length; i++){
document.write( t[i] +"<br>");
}
//Alternatív deklaráció egy tömbre
var tt = [0:"első elem", 1:"második elem", 2: "harmadik elem", ....];
//Egy tömb összes elemének kiiratása visszafelé
for(var i=tt.length; i>-1 ; i--){
document.write( t[ti] +"<br>");
}
Két dimenziós és több dimenziós tömbök is léteznek, de ez most nem
var aktivitasok = [
['Dolgozik', 9],
['Eszik', 1],
['Játszik', 2],
['Alszik', 8]
];
A tömbökben tárolt adatok típusa keverhető pl. a C# ellenében!
Objektumok
Valójában a tömbök is objektumok, mivel a javascriptben minden objektum...
// Létrehozunk egy objektumot, amelynek az elemei egy személyt azonosítanak
var szemely = {
nev: "péter",
szulido: "1961.09.18",
anyjaneve: "Bimbó Mária"
}
//A jQuery képes egy objektum minden egyes elemén végigmenni.
//Az alábbi példa a fenti objektum minden elemét kiírja
jQuery.each( function(index, value) {
document.write( index +": " +value+"<br>" );
});
Fontos string műveletek
Egy stringet hasonlóan más programozási nyelvekhez - szét tudunk darabolni egy bizonyos karaktersorozat mentén
var str = "Gipsz Jakab,1961.09.18, Piripócsi Márta";
var t = str.split(","); //szétdaraboljuk a ',' mentén a stringet és betesszük egy tömbbe:
//Kiiratjuk az adatokat
for(var i=0;i<t.length; i++){
document.write(t[i]+"<br>");
}
A fenti kód használható az alábbi módon AJAX hívásoknál: Talán ez a legegyszerűbb mód, hogy adatokat kapjak vissza és dolgozzak fel a kliens oldalon javascriptben. egyszerű, de nem a legjobb mód.
A legritkább esetben kell az adatokat olyan sorrendben feldolgozni, ahogyan a szerver oldalról visszaérkeznek, ráadásul különböző speciális jelek visszaadásával is lehetnek gondok.
JSON adatstruktúra
Az interneten átküldendő adatok korrekt kezeléséhez a W3C konzorcium kidolgozta a JSON szabványt, amely szabványosan kezeli az interneten átküldött mindenféle információt a karakterkészletek és a speciális karakterek szempontjából. Ha ezzel a szabvánnyal oldjuk meg egy kliens és egy szerver oldal közötti kommunikációt, akkor biztosak lehetünk, hogy a különböző kódlapok, karakterkészletek nem fognak bezavarni a kommunikációba.
Mivel a szerver és a kliens oldal között végső soron a kommunikáció mindig stringek formájában zajlik, ezért a javascript képes előállítani megfelelő formátumú stringekből objektumot vagy tömböt és objektumból vagy tömbből előállít megfelelő formátumú stringet.
Ha a szerver oldalról kapunk egy ilyen jellegű stringet, akkor az alábbi módon tudjuk konvertálni az objektummá:
JSON.parse(string);
//A string úgy né ki, mintha objektum volna, pedig csak egy string...
var str = '{"nev":"Pista", "eletkor":30, "varos":"Piripcstarcsa"}'
var obj = JSON.parse (str);
//Ha a stzring úgy néz ki, mintha egy tömb értékei lennének, akkor a JSON tömböt állít elő
var str1 = '["Pista", "Géza", "Mari"]';
var a = JSON.parse(str1);
Mivel ilyenkor egy utasítással át tudjuk konvertálni a stringet megfelelő adattípussá, ezért a programozó válláról le tudjuk venni a konverzió terhét és az adatszerkezetek is biztosan jók lesznek.
JSON.stringify(obj);
Ha egy objektumot vagy tömböt szeretnénk konvertálni stringgé, akkor az alábbi utasítást lehet használni.
Megjegyzés:
A javascript az utolsó pár évben nem csak böngésző, hanem szerver oldali programozási nyelvvé is vált, ezért a kommunikációban az objektum => string átalakítás is fontos.
A szerver oldalon gyakran PHP kód vagy .Net kód áll, ezért fontos, hgy az az oldal is képes legyen kezelni a JSON adatstuktúrát
JSON a PHP kódban
Bár ez most nem PHP gyorstalpaló, de a JSON-nal kapcsolatos PHP tudnivalókat összefoglalom:
Ha van egy tömbünk a PHP-ban, akkor azt így deklaráljuk:
//ez egy szimpla tömb
$t = ["Pista", "Géza", "Mari", "Juci"];
//Ez egy asszociatív tömb, ami leginkább egy objektumra hasonlít
$tt = ["nev"=> "Pista", "szulido" =>"1961.09.18", "anyjaneve"=> "Piripócsi Kis Mariska", "lakik"=>"Piripócstarcsa"];
//létrejön egy JSON string, amit vissza lehet küldeni a kliensnek
$json = json_encode($tt);
//Ha kapunk a kliens oldalról egy JSON stringet, akkor pedig így lesz belőle asszociatív tömb.
// Megjegyzés:
// A $_REQUEST tömb tartalmaz minden $_GET és $_POSt értéket,
// tehát a kliens bármelyik szabvány szerint küldi az adatot az ebben a szuperglobális
// tömbben megjelenik
$str = $_REQUEST['par'];
//A $p változó már egy asszociatív tömb (objektum) lesz
$p = json_decode($str);