[ _CaRtMan_ @ 17.07.2008. 20:44 ] @
Zelim da napravim da kad kliknem na link da se pojavi jedan window gdje ce pisati:

Da li ste sigurni da zelite da obrisete odabrani podatak ? I Yes i No. Klikom na Yes da mi obrise klikom na No da ide Close. Kako bih to mogao izvesti.

Mogao bih napraviti query koji ce brisati iz baze, ali kako bih to pozvao i sl. Molim za pomoc. Pozdrav. :)
[ Nikola Poša @ 17.07.2008. 21:30 ] @
Nije mi bash najjasnije shta zhelish da postignesh, al' evo nekih osnovnih stvari koje ce ti verovatno biti od pomoci:

Za taj link prvo treba da definishesh dogadjaj pozivanja funkcije koja ce to da odradi, npr. ovako:
Code:
<a href = "#" onClick = "radi()">Link</a>

A ta funkcija bi trebala da radi sledece:
Code:

function radi() {
   if (confirm("Da li ste sigurni da zelite da obrisete odabrani podatak?")) {
    //ovde napishi taj query koji treba da obavi tu operaciju
   }
}
[ _CaRtMan_ @ 17.07.2008. 22:07 ] @
A nije fazon da pisem u javascript query svi ce moci vidjeti to. :) Sta bih u js funkciju napisao da mi pozove neki fajl ? I kad kliknem na link da mi pozove taj fajl, a u tom fajlu ce izvrsavati ? S tim sto bi trebao imati parametar ID ?
[ Aleksandar Ružičić @ 17.07.2008. 23:07 ] @
pa ne pises taj kveri u js-u, vec ti pomocu js-a samo treba da pozoves stranu (kojoj prosledis neki parametar) koja ce to da uradi, nesto kao:
Code:

function delete(id)
{
   if (confirm("Da li ste sigurni da zelite da obrisete podatak?"))
   {
       window.location.href = "actions.php?do=delete&id=" + escape(id);
   }
}
[ centaur @ 18.07.2008. 10:46 ] @
^Mozes tako, ali posto je u pitanju brisanje, mozes i ajax-om da pozoves PHP fajl, prosledis mu ID, ispratis akciju i prikazes rezultat koji ti vrati PHP skripta.
Cisto da ne radis refresh cele strane zbog operacije brisanja ;)
[ _CaRtMan_ @ 18.07.2008. 19:01 ] @
Znam da moze AJAX-om ali ja AJAX ne znam :-)
[ centaur @ 18.07.2008. 22:21 ] @
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]
[ _CaRtMan_ @ 21.07.2008. 17:37 ] @
E hvala ti puno. :) Vidim detaljno si ovo napisao pa ne bi trebalo da bude problema. Probati cu cim budem imao vremena. :) Hvala jos jednom. :)
[ _CaRtMan_ @ 26.07.2008. 13:34 ] @
Prevelik je to zalogaj :) Krecem od osnovnih stvari pa kasnije to :)

Code:
var httpRequest;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

function get(){
httpRequest.open('get', 'tekst.txt', true);
httpRequest.send(null);


A vamo sam stavio:
<a href="javascript:;" onclick="get();">tekst</a>

i nista :)