Piemēri:
|
AJAX un JSON
Datu pieprasīšanai AJAX stilā no Karšu tv tiek izmantotas JSON tehnoloģijas. To veic objekts call_back, kuru iespējams arī izmantot savām vajadzībām. JSON tehnoloģijas principi ļauj pieprasīt datus no dažādiem domēniem, nevis kā AJAX, kas ir ierobežots tikai uz vienu domēna, no kura ir atvērta laba. Bet JSON atbildei jābūt saformētai kā JavaScript masīvam vai objektam (sīkāk šeit - www.json.org).
Datu pieprasīšana
- funkcijas definēšana un pieprasījuma noformēšana
function MyFn()
{
alert(kijs_admin_iedal.data[0].n);
}
call_back.LoadJson("http://maps.kartes.lv/kijs/server_scripts/search.php?q=stabu&kijs=1234", function(){MyFn()});
Pieprasījums sastāv no saites, kur tiks uzģenerēts vēlamais rezultāts, kā arī funkcijas objekta, kas tiks izsaukts, kad pieprasītā saite būs izpildīta.
- servera skripta atbildes ģenerēšana balstoties uz parametriem
kijs_admin_iedal={total:2, data:[{id:535,t:5,n:'Jūrmala, Stabu iela'},{id:1864,t:5,n:'Daugavpils, Stabu iela'}]};
call_back.Call(1218797766369);
Servera atbildei jābūt JavaScript kodam, jo tas automātiski tiek izpildīts pie atgriešanas. Lai tiktu nodrošināts mehānisms, kad tiek izsaukta funkcija MyFn() uz atbildes saņemšanu, call_back objekts pieprasījumam pieliek papildus parametru c, kura vērtību nepieciešams iedrukāt atgriežamajā kodā.
// sākotnējais pieprasījums
http://maps.kartes.lv/kijs/server_scripts/search.php?q=stabu&kijs=1234
// call_back.LoadJson() metodes pārveidotais pieprasījums
http://maps.kartes.lv/kijs/server_scripts/search.php?q=stabu&kijs=1234&c=call_back.Call(1218797766369);
PHP gadījumā servera skripta beigās nepieciešams šāds kods:
echo " ".$_GET['c']."; ";
- kad pieprasījums ir apstrādāts, tiek izsaukta funkcija MyFn(), kas nu jau brīvi var strādāt ar mainīgo kijs_admin_iedal, kas tika izveidots servera ģenerētajā skriptā.
|