Pentru a organiza comunicarea interactivă între un vizitator și un site web (sau mai bine zis, un browser cu un server web), programatorul trebuie să ofere scenarii pentru schimbul de date între ei. Să luăm în considerare mai multe opțiuni simple pentru organizarea transferului de variabile de la scriptul client JavaScrip la scriptul serverului PHP și invers.
Este necesar
Cunoașterea de bază a limbajelor PHP, JavaScript și HTML
Instrucțiuni
Pasul 1
În etapa de formare a paginii, nu este dificil să transferați o variabilă împreună cu valoarea ei dintr-un script php într-un script JavaScript. Scriptul PHP în sine generează codul HTML al paginii solicitate, inclusiv scripturile pe care le conține. Aceasta înseamnă că poate scrie orice variabile în codul JavaScript care ar trebui să fie transmise împreună cu valorile lor. De exemplu, acest script php va transmite scriptului client o variabilă numită „serverTime” care conține ora curentă a serverului în format ORA: MINUT:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Și pe server acum" + '. $ JSvarName.'); '
?>
Pasul 2
Cel mai simplu mod de a transmite numele și valorile variabilelor în direcția opusă (de la scriptul JS din browserul clientului la scriptul PHP de pe serverul web) poate arăta astfel în codul HTML al paginii:
var acum = data nouă ();
var varName = 'ClientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Acest script va trimite scriptului test2.php numele variabilei "clientTime" și valoarea acesteia conținând ora curentă a computerului în același format ORA: MINUT. Această metodă de transfer a datelor se numește „sincronă” - va avea ca rezultat o reîncărcare imediată a paginii. Mai precis, în locul paginii curente, rezultatul scriptului test2.php va fi încărcat în browser. Codul pentru acest script PHP ar putea arăta astfel:
<? php
if ($ _ GET) ecou 'Variabilă primită'.key ($ _ GET). '='. $ _ GET [cheie ($ _ GET)];
?>
Puteți combina toate cele trei părți considerate ale codului pentru a trece variabile de la server la browser și înapoi într-un singur fișier php astfel:
<? php
if ($ _ GET) ecou 'Variabilă primită'.key ($ _ GET). '='. $ _ GET [cheie ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Și pe server acum" + '. $ JSvarName.'); '
?>
funcția sendData () {
var acum = data nouă ();
var varName = 'ClientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
returnează fals;
}
Trimiteți date către server În acest script combinat (PHP + JavaScript), codul php va genera cod JavaScript prin „trecerea” unei variabile numite „serverTime” cu o valoare care conține ora curentă a serverului. Când pagina este încărcată în browser, scriptul JavaScript va afișa un mesaj cu această dată. Apoi utilizatorul face clic pe linkul „Trimite date către server” va lansa funcția sendData (), care va trimite o cerere GET către server, trecând numele variabilei („clientTime”) și valoarea acesteia (ora clientului) către php scenariu. Un script php, după ce a citit numele și valoarea unei variabile din matricea superglobală $ _GET, îl va imprima și va începe din nou întregul script descris.
Pasul 3
Tot ce este descris mai sus implementează scenariul transferului de date „sincron”. Implementarea metodei „asincrone” de schimb de date între scripturi client și server are propriul nume AJAX (Asynchronous Javascript și XML). Acest subiect merită un articol separat.