WEBnSTUDY.com
Web aplikacije

GET zahtev

Najjednostavniji način da se podaci sa klijenta proslede serveru je korišćenjem GET HTTP metoda. Podaci se prenose u okviru samog URL-a koji se prosleđuje serveru.

Zadavanje podataka na klijentu

Svaki podatak se zadaje u formi dve komponente: naziv podatka i sadržaj podatka, koji su povezani znakom jednakosti.

naziv=podatak

Ako imamo više ovakvih podataka, povezujemo ih ampersendom (znak &). Podrazumeva se da su nazivi jedinstveni, odnosno da u istom zahtevu nemamo dva podatka sa istim nazivom.

naziv=podatak&naziv=podatak&naziv=podatak

Konačno, da bi cela ova "sekvenca" bila zadata, potrebno ju je "zakačiti" znakom pitanja (znak ?) na URL stranice koja prihvata podatke. To, naravno, ne može biti obična HTML strana, već neki program koji se izvršava na serveru, kao što je PHP (ili CGI, ASP, JSP...).

strana.php?naziv1=podatak1&naziv2=podatak2

Prijem podataka na serveru

Na PHP stranici se svaki zaseban poadatak, odnosno "parametar", smešta u asocijativni niz $_GET, gde su ključevi u stvari nazivi podataka, a vrednosti sami podaci.

$_GET["naziv1"] ima vrednost "podatak1" $_GET["naziv2"] ima vrednost "podatak2"

Bez obzira kog su tipa podaci bili naklijentu, u $_GET nizu su smešteni kao tekstualne vrednosti.

Upućivanje GET zahteva iz linka

U HTML dokumentu možemo imati jednostavan link koji sadrži podatke koji se prosleđuju serveru.


  <a href="primer.php?ime=Jovan&prezime=Perić">Kliknite da pošaljete ime i prezime</a>
		

Stranica primer.php može izgledati npr. ovako:


  <html>
  <body>
<?php
    $puno_ime = $_GET["ime"] . " " . $_GET["prezime"];
    echo "<p>Vaše puno ime je <b>{$puno_ime}</b> </p>";
?>
  </body>
  </html>
		

Kao što vidimo, nema nikakvih specijalnih naredbi ili funkcija. Sve što je potrebno da bismo ispisali zadato ime i prezime, je da pristupimo odgovarajućim elementima niza $_GET.

GET zahtev iz JavaScripta

Razmotrimo sledeći primer - u PHP dokumentu smo od ranije dobili HTML tabelu kod koje svaki red reaguje na klik mišem.


  <table>
  <tr onclick="klikRed(this)">
    <td>2372</td> <td>Jovan Perić</td>
  </tr>
  <tr onclick="klikRed(this)">
    <td>5504</td> <td>Ana Lukić</td>
  </tr>
  <tr onclick="klikRed(this)">
    <td>8186</td> <td>Dejan Antić</td>
  </tr>
  </table>
		

Kada se klikne na red, podatak iz prve ćelije se koristi kao GET parametar "id" za stranicu podaci.php. Ovde možemo videti JavaScript funkciju koja formira zahtev kao URL u promenljivoj poziv, a onda prosto menja lokaciju na taj URL - jednostavno prelazi na novu stranu.


  function klikRed(red)
  {
    var poziv = "/podaci.php?id=" + red.cells[0].innerHTML;
    location.href = poziv;
  }
  
  // NPR. ako se klikne na drugi red, poziv = "/podaci.php?id=5504"
		

Najzad, na stranici podaci.php se prihvata parametar ID kako bi se prikazali podaci o korisniku.


  <html>
  <body>
  <?php
    //...
    $zahtev = "SELECT ime, prezime, telefon, email FROM korisnici WHERE (ident='{$_GET["id"]}')";
    $rez = mysql_query($zahtev);
    if ($slog = mysql_fetch_assoc($rez)) {
      echo "<div>\n";
      echo "IME: <b>{$slog["ime"]}</b> <br />\n";
      echo "PREZIME: <b>{$slog["prezime"]}</b> <br />\n";
      echo "TELEFON: <b>{$slog["telefon"]}</b> <br />\n";
      echo "E-MAIL: <b>{$slog["email"]}</b>\n";
      echo "</div>\n";
    }
  ?>
  </body>
  </html>
		

U PHP-u kreiramo MySQL zahtev na osnovu prosleđenog id parametra i ispisujemo rezultat. Nemojte se brinuti ako vam nije baš najjasnije šta se događa u programu. O tome ćemo pisati u odeljku koji se bavi povezivanjem MySQL-a i PHP-a.

Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies) radi vođenja interne statistike u cilju unapređenja korisničkog iskustva. Tako prikupljeni podaci su anonimni i nedostupni trećim licima. Vaša privatnost nije ugrožena ni na koji način.