Home FORUM Toplista HTML CSS JavaScript PHP DIZAJN SEO Mapa |
![]() |
![]() |
![]() |
![]() |
![]() |
Kombinovanje POST i GET metoda kroz jednu formuU slučaju kada se unutar jednog PHP dokumenta nalazi više "delova" sitea, tu govorim o tzv. višenamenskim stranicama, koncept takvih dokumenata je da se na osnovu jedne (ili više) promenjljive iz query stringa surferu prikazuju potpuno različiti delovi sitea. Recimo, ako surfer otvori link tipa http://www.moj-site.com/indeks.php?nav=novosti prikazuje mu se lista svih novosti, a ako otvori link http://www.moj-site.com/indeks.php?nav=kontakt otvara mu se kontakt forma. Očito je da u ovom slučaju moramo nekako proslediti $_GET["nav"] varijablu kroz query string tako da sve radi kako treba. Ovo je moguće ukoliko se radi o formi sa POST metodom slanja podataka. Idemo pogledati primer pa će stvari biti jasnije.
Već smo napisali da se ovde radi o višenamenskoj stranici koja je realizovana pomoću kontrolne varijable $_GET["nav"]. Zavisno od njene vrednosti naš dokument surferu vraća drugačiji ispis.
Kao što znamo action argument <form> taga služi za određivanje URL-a do dokumenta koji očekuje podatke iz te forme te ih obrađuje. Pošto je u ovom slučaju dokument koji prihvata podatke isti kao i onaj koji prikazuje formu kao prvi deo linka koristimo $PHP_SELF varijablu radi osiguravanja da će se opet otvoriti isti dokument. Ali, u ovom slučaju je problematika dodatno zakomplikovana time što se forma nalazi unutar višenamenske stranice i ukoliko nekako ne prosledimo vrednost i za $_GET["nav"] promenjljive nakon submitanja forme će se umesto koda za obradu forme pokrenuti default grana switch strukture. Iz tog razloga smo ručno "zalepili" na kraj action argumenta i query string sa vrednosti za $_GET["nav"] varijablu, tako da osiguramo da će se nakon submitanja forme opet pokrenuti pravilna grana switch-a (ona u kojoj se nalazi cod za prikaz i obradu forme). Pošto smo prosledili tu vrednost naša skripta će nakon submitanja pravilno obaviti obradu forme. Prva stvar je da moramo proslediti tačnu vrednost za $_GET["nav"]. Ali druga, ne toliko očita stvar je da ovaj koncept ne radi ukoliko se radi o formi sa GET metodom. Problem leži u samom HTML-u, tj HTTP protokolu. Naime, kada se formi daje GET metoda i u action argument te forme ručno upišemo link zajedno sa query stringom, taj query string će biti automatski zamenjen sa imenima i vrednostima elemenata iz forme. Ilustracije radi, pokušajte pokrenuti gornji primjer, samo promenite metodu slanja forme iz POST u GET. Ali, stvari ipak nisu toliko crne. Postoji način kako "naterati" formu da ipak pravilno prosledi i $_GET["nav"] varijabli nakon submitanja forme ukoliko se forma šalje GET metodom. Jedan od načina je da u formu dodamo, nevidljivo, polje imena "nav" te u njega spremimo pravilnu vrijednost, pa će mo imati sledeću formu:
|
![]() |
Copyright © 2010 BUbaj. Powered By bubaj.com |
PHP PHP sintaksa Fajl Niz String Funkcija Objektno programiranje MySQL Unos fajla Datum Forme Sesija Registracija |