Da bi organizirao interaktivnu komunikaciju između posjetitelja i web mjesta (ili bolje rečeno, preglednika s web poslužiteljem), programer mora osigurati scenarije za razmjenu podataka između njih. Razmotrimo nekoliko jednostavnih opcija za organiziranje prijenosa varijabli s klijentske JavaScrip skripte na PHP skriptu poslužitelja i obrnuto.
Nužno je
Osnovno znanje PHP, JavaScript i HTML jezika
Upute
Korak 1
U fazi formiranja stranice nije teško prenijeti varijablu zajedno s njezinom vrijednošću iz php skripte u JavaScript skriptu. Skripta PHP 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 bi trebale biti proslijeđene zajedno s njihovim vrijednostima. Na primjer, ova php skripta proslijedit će klijentskoj skripti varijablu nazvanu "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 poslužitelju sada" + '. $ JSvarName.'); '
?>
Korak 2
Najjednostavniji način prosljeđivanja imena i vrijednosti varijabli u suprotnom smjeru (od JS skripte u klijentovom pregledniku do PHP skripte na web poslužitelju) 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čunalsko vrijeme u istom formatu HOUR: MINUTE. Ovaj način prijenosa podataka naziva se "sinkroni" - rezultirat će trenutnim ponovnim učitavanjem stranice. Točnije, umjesto trenutne stranice, rezultat skripte test2.php bit će učitan u preglednik. Kôd za ovu php skriptu mogao bi 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 s poslužitelja 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 poslužitelju 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 poslužitelj U ovoj kombiniranoj (PHP + JavaScript) skripti, php kôd generirat će JavaScript kôd tako što će "proslijediti" varijablu pod nazivom "serverTime" s vrijednošću koja sadrži trenutno vrijeme poslužitelja. Kad se stranica učita u preglednik, JavaScript skripta prikazat će poruku s tim 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 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.
3. korak
Sve gore opisano implementira scenarij "sinkronog" prijenosa podataka. Implementacija "asinkrone" metode razmjene podataka između klijentskih i poslužiteljskih skripti ima svoje ime AJAX (Asinkroni Javascript i XML). Ova tema zaslužuje zaseban članak.