Za organiziranje interaktivne komunikacije med obiskovalcem in spletnim mestom (ali bolje rečeno brskalnikom s spletnim strežnikom) mora programer zagotoviti scenarije za izmenjavo podatkov med njimi. Upoštevajmo več preprostih možnosti za organizacijo prenosa spremenljivk iz odjemalskega skripta JavaScrip v strežniški PHP skript in obratno.
Potrebno je
Osnovno znanje jezikov PHP, JavaScript in HTML
Navodila
Korak 1
Na stopnji oblikovanja strani ni težko spremenljivke skupaj z njeno vrednostjo prenesti iz skripta php v skript JavaScript. Skript PHP sam ustvari kodo HTML zahtevane strani, vključno s skripti, ki jih vsebuje. To pomeni, da lahko v kodo JavaScript zapiše vse spremenljivke, ki jih je treba predati skupaj z njihovimi vrednostmi. Na primer, ta skript php bo odjemalskemu skriptu poslal spremenljivko z imenom "serverTime", ki vsebuje trenutni čas strežnika v obliki HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("In na strežniku zdaj" + '. $ JSvarName.'); '
?>
2. korak
Najenostavnejši način posredovanja imen in vrednosti spremenljivk v nasprotni smeri (od skripta JS v odjemalčevem brskalniku do skripta PHP na spletnem strežniku) je lahko videti tako v kodi HTML strani:
var zdaj = nov datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Ta skript bo skriptu test2.php poslal ime spremenljivke "clientTime" in njeno vrednost, ki vsebuje trenutni računalniški čas v isti obliki HOUR: MINUTE. Ta način prenosa podatkov se imenuje "sinhroni" - povzročil bo takojšnje ponovno nalaganje strani. Natančneje, namesto trenutne strani se bo v brskalnik naložil rezultat skripta test2.php. Koda za ta skript php je lahko videti takole:
<? php
if ($ _ GET) echo 'Prejeta spremenljivka'.key ($ _ GET). '='. $ _ GET [ključ ($ _ GET)];
?>
Vse tri obravnavane dele kode lahko združite za posredovanje spremenljivk s strežnika v brskalnik in nazaj v eno datoteko php, kot je ta:
<? php
if ($ _ GET) echo 'Sprejeta spremenljivka'.key ($ _ GET). '='. $ _ GET [ključ ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("In na strežniku zdaj" + '. $ JSvarName.'); '
?>
funkcija sendData () {
var zdaj = nov datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
vrni false;
}
Pošiljanje podatkov strežniku V tem kombiniranem skriptu (PHP + JavaScript) bo php koda ustvarila kodo JavaScript tako, da bo "posredovala" spremenljivko z imenom "serverTime" z vrednostjo, ki vsebuje trenutni čas strežnika. Ko se stran naloži v brskalnik, bo skript JavaScript prikazal sporočilo s tem časom. Nato uporabnik s klikom na povezavo »Pošlji podatke strežniku« zažene funkcijo sendData (), ki bo strežniku poslala zahtevo GET in posredovala ime spremenljivke (»clientTime«) in njeno vrednost (čas odjemalca) v php scenarij. Skript php, ki je prebral ime in vrednost spremenljivke iz superglobalne matrike $ _GET, jo bo natisnil in znova zagnal celoten opisani skript.
3. korak
Vse zgoraj opisano izvaja scenarij "sinhronega" prenosa podatkov. Izvedba "asinhrone" metode izmenjave podatkov med odjemalskim in strežniškim skriptom ima svoje ime AJAX (Asinhroni Javascript in XML). Ta tema si zasluži ločen članek.