To znaci da je vreme da ga naucis, a ovo je odlican primer za to :)
Prvi zadatak je da kreiras
XMLHttpRequest objekat.
To mozes da uradis recimo ovako:
Code:
// cross-browser nacin da kreiras trazeni javascript objekat
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != "undefined")
{
xmlhttp = new XMLHttpRequest();
}
Sada treba da napravis javascript funkciju koja ce da pozove odredjenu stranu na serveru i da primi ono sto ce ta skripta da vrati.
To mozes recimo ovako:
Code:
/* url - url do skripte koju pozivas zajedno sa parametrima (npr id koji hoces da obrises)
* callback_function - javascripot funkcija koja ce da hendluje ono sto ti vrati php skripta
* element_id - id elementa u html-u koji treba da obrises posle te akcije (ako uopste treba nesto da brises)
* ajax_loader_div - id elementa u kome hoces da prikazes neku slicicu kako bi posetilac znao da se nesto desava
*/
function ajax (url, callback_function, element_id, ajax_loader_div)
{
//Napravis default div, kako ne bi morao svaki put da saljes to ako ti ne treba
if (ajax_loader_div == null)
{
var ajax_loader_div = 'ajax_loader_info';
}
// Diskutablina metoda ali najkraca za pisanje i provereno radi na svim browserima :)
document.getElementById(ajax_loader_div).innerHTML = '<img src="/putanja/do/slike/koju_hoces_da_prikazes.jpg" alt="Učitavanje" />';
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
// Jos malo diskutabilne metode za uklanjanje sadrzaja nekog diva :)
document.getElementById(ajax_loader_div).innerHTML = '';
var data = xmlhttp.responseXML;
eval(callback_function + '(data, element_id)');
}
}
xmlhttp.send(null);
}
Sada imas XML koji ti je vratila PHP skripta.
Pretpostavljam da PHP skriptu vec imas i potrebno je da je samo malo modifikujes kako bi vratila podatke u XML-u.
Ostaje da se napise i javascript funkcija koja ce da obradi XML koji je PHP skripta vratila.
To moze recimo ovako:
Code:
function callback (data, element_id)
{
var status = data.getElementsByTagName("status")[0].firstChild.nodeValue;
/* Proveris da li je status ok ili ne
if (status == 'ok')
{
if (element_id){
document.getElementById(element_id).style.display = "none";
}else{
alert('Brisanje je bilo uspesno');
}
}else{
alert('Doslo je do greske!');
}
}
Sad imas ceo kod.Jedino sto jos treba da provalis je kako da formiras output php skripte (xml) a to stvarno nije tesko ;)
[Ovu poruku je menjao centaur dana 19.07.2008. u 10:45 GMT+1]
Powered by Slackware 13