Dakle, imaš kod
Code:
<button onclick="<?php $_SESSION['kateg_izbor']="AUTO"; ?> ">Biram kola</button>
<button onclick="<?php $_SESSION['kateg_izbor']="KUCE"; ?> ">Biram kuce</button>
<button onclick="<?php $_SESSION['kateg_izbor']="POSAO"; ?> ">Trazim posao</button>
što je html kod koji je već istigao do klijentovog browsera i tu se izvršio pre nego što je klijent bilo šta kliknuo. Browser je verovatno ovo shvatio kao onclick="", što znači "prilikom klika nemoj da uradiš apsolutno ništa". Da bi se ovo izvelo potrebno je da kada korisnik klikne na dugme izvrši http zahtev ka serveru gde će se postaviti odgovarajuća sesija. Ovde u igru ulazii moćni AJAX.
koraci su sledeći:
Kreirati javascript funkciju koja će poslati pozadinski HTTP zahtev ka PHP skripti koja će postaviti sesiju
recimo da se funkcija zove set_kateg_izbor(int izbor). Ona kreira HTTP zahtev ka skriptu na adresi
www.domian.com/lib/set_kateg_izbor.php. Takođe šalje i parametar kroz taj zahtev putem POST ili GET metoda
Imamo na primer konvenciju
0 - AUTO
1 - KUCE
2 - POSAO
Za realizaciju ajax funkcije prouči AJAX na googlu, a možeš i da pogledaš jquery, što je jednostavnije.
Fajl set_kateg_izbor.php
Code:
<?php
session_start();
switch( $_POST['kateg_izbor'] ){
case 0: $_SESSION['kateg_izbor']="AUTO";
break;
case 1: $_SESSION['kateg_izbor']="KUCE";
break;
case 2: $_SESSION['kateg_izbor']="POSAO";
break;
}
?>
javaScript funkcija set_kateg_izbor() se poziva prilikom klika
Code:
<button onclick="set_kateg_izbor(0)">Biram kola</button>
<button onclick="set_kateg_izbor(1) ">Biram kuce</button>
<button onclick="set_kateg_izbor(2) ">Trazim posao</button>
Kada je ovo urađeno, neće se na stranici ništa ptomeniti dok se ne osveži . To se može iyvesti tako što se na kraju JavaScript funkcije ubaci document.location.reload(true). Sad, ako već imamo potrebu za osvežavanjem stranice bolje je zaobići komplet ovu AJAX stvar i koristiti formu. Postoji gomila mogućnosti, samo treba malo zastati i isplanirati pre samog kodiranja kako bi se dobilo što elegantnije rešenje