Da bi organizirao interaktivnu komunikaciju između posjetitelja i web stranice (ili bolje rečeno, preglednika s web serverom), programer mora osigurati scenarije za razmjenu podataka između njih. Razmotrimo nekoliko jednostavnih opcija za organizaciju prijenosa varijabli s klijentske JavaScrip skripte na server PHP skriptu i obrnuto.
Neophodno je
Osnovno znanje PHP, JavaScript i HTML jezika
Instrukcije
Korak 1
U fazi formiranja stranice nije teško prenijeti varijablu zajedno sa njenom vrijednošću iz php skripte u JavaScript skriptu. PHP skripta sama generira HTML kôd tražene stranice, uključujući skripte koje sadrži. To znači da u JavaScript kôd može upisati bilo koje varijable koje treba proslijediti zajedno s njihovim vrijednostima. Na primjer, ova php skripta proslijedit će klijentskoj skripti varijablu pod nazivom "serverTime" koja sadrži trenutno vrijeme poslužitelja u formatu HOUR: MINUTE:
<? php
$ JSvarName = 'vrijeme poslužitelja';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
ispis ''. $ JScode.'alert ("I na serveru sada" + '. $ JSvarName.'); '
?>
Korak 2
Najjednostavniji način prosljeđivanja imena i vrijednosti varijabli u suprotnom smjeru (od JS skripte u klijentovom pretraživaču do PHP skripte na web serveru) može izgledati ovako u HTML kodu stranice:
var sada = novi datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Ova će skripta poslati skripti test2.php ime varijable "clientTime" i njenu vrijednost koja sadrži trenutno računarsko vrijeme u istom formatu HOUR: MINUTE. Ovaj način prijenosa podataka naziva se "sinkroni" - rezultirat će trenutnim ponovnim učitavanjem stranice. Tačnije, umjesto trenutne stranice, rezultat skripte test2.php će se učitati u pretraživač. Kôd za ovu php skriptu može izgledati ovako:
<? php
if ($ _ GET) echo 'Primljena varijabla'.key ($ _ GET). '='. $ _ GET [ključ ($ _ GET)];
?>
Možete kombinirati sva tri razmatrana dijela koda za prosljeđivanje varijabli sa servera u preglednik i natrag u jednu php datoteku poput ove:
<? php
if ($ _ GET) echo 'Primljena varijabla'.key ($ _ GET). '='. $ _ GET [ključ ($ _ GET)];
$ JSvarName = 'vrijeme poslužitelja';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
ispis ''. $ JScode.'alert ("I na serveru sada" + '. $ JSvarName.'); '
?>
funkcija sendData () {
var sada = novi datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
return false;
}
Slanje podataka na server U ovoj kombiniranoj (PHP + JavaScript) skripti, php kôd će generirati JavaScript kôd tako što će "proslijediti" varijablu pod nazivom "serverTime" sa vrijednošću koja sadrži trenutno vrijeme poslužitelja. Kada se stranica učita u preglednik, JavaScript skripta će prikazati poruku s ovim vremenom. Tada korisnik klikne na vezu "Pošalji podatke poslužitelju", pokrenut će funkciju sendData (), koja će poslati GET zahtjev poslužitelju, prosljeđujući naziv varijable ("clientTime") i njezinu vrijednost (vrijeme klijenta) php-u skripta. PHP skripta, nakon što je pročitala ime i vrijednost varijable iz superglobalnog niza $ _GET, ispisat će je i ponovo pokrenuti cijelu opisanu skriptu.
Korak 3
Sve gore opisano implementira scenarij "sinkronog" prijenosa podataka. Implementacija "asinhrone" metode razmjene podataka između klijentskih i poslužiteljskih skripti ima svoje ime AJAX (Asinkroni Javascript i XML). Ova tema zaslužuje poseban članak.