Interaktiivse suhtluse korraldamiseks külastaja ja veebisaidi (õigemini veebiserveriga brauseri) vahel peab programmeerija pakkuma stsenaariume nende omavahelise andmevahetuse jaoks. Mõelgem mitmele lihtsale võimalusele muutujate edastamise korraldamiseks kliendi JavaScrip skriptilt serveri PHP skripti ja vastupidi.
See on vajalik
Põhiteadmised PHP, JavaScripti ja HTML keeltest
Juhised
Samm 1
Lehe moodustamise etapis pole keeruline muutujat koos selle väärtusega PHP-skriptist JavaScripti skripti üle kanda. PHP-skript genereerib ise taotletud lehe HTML-koodi, sealhulgas selles sisalduvad skriptid. See tähendab, et ta saab JavaScripti koodi kirjutada kõik muutujad, mis tuleks edastada koos nende väärtustega. Näiteks edastab see php-skript kliendi skriptile muutuja nimega "serverTime", mis sisaldab praegust serveri aega vormingus HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = kuupäev ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Ja nüüd serveris" + '. $ JSvarName.'); '
?>
2. samm
Lihtsaim viis muutujate nimede ja väärtuste edastamiseks vastassuunas (alates kliendi brauseri JS-skriptist veebiserveri PHP-skripti) võib lehe HTML-koodis välja näha järgmine:
var now = uus kuupäev ();
var varName = 'klientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
See skript saadab skriptile test2.php muutuja "clientTime" nime ja selle väärtuse, mis sisaldab praegust arvuti aega samas vormingus HOUR: MINUTE. Seda andmete edastamise meetodit nimetatakse "sünkroonseks" - see toob kaasa lehe kohese uuesti laadimise. Täpsemalt öeldes laaditakse brauserisse praeguse lehe asemel skripti test2.php tulemus. Selle php-skripti kood võib välja näha järgmine:
<? php
if ($ _ GET) kaja 'Saadud muutuja'.klahv ($ _ GET). '='. $ _ GET [võti ($ _ GET)];
?>
Muutujate edastamiseks serverist brauserisse ja tagasi ühte PHP-faili saate kombineerida kõik kolm kaalutavat koodi osa:
<? php
if ($ _ GET) kaja 'Saadud muutuja'.klahv ($ _ GET). '='. $ _ GET [võti ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = kuupäev ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Ja nüüd serveris" + '. $ JSvarName.'); '
?>
funktsioon sendData () {
var now = uus kuupäev ();
var varName = 'klientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
return false;
}
Andmete saatmine serverile Selles kombineeritud (PHP + JavaScripti) skriptis genereerib php-kood JavaScripti koodi, edastades muutuja nimega "serverTime" väärtusega, mis sisaldab praegust serveri aega. Kui leht on brauserisse laaditud, kuvab JavaScripti skript selle ajaga sõnumi. Seejärel klõpsates lingil "Saada andmed serverile", käivitatakse funktsioon sendData (), mis saadab serverile GET-päringu, edastades muutuja nime ("klientTime") ja selle väärtuse (kliendi aeg) php-le stsenaarium. PHP-skript, olles lugenud muutuja nime ja väärtuse superglobaalsest massiivist $ _GET, prindib selle ja käivitab kogu kirjeldatud skripti uuesti.
3. samm
Kõik ülalkirjeldatu rakendab andmete sünkroonse edastamise stsenaariumi. Kliendi ja serveri skriptide vahelise andmevahetuse "asünkroonse" meetodi rakendamisel on oma nimi AJAX (asünkroonne Javascript ja XML). See teema väärib eraldi artiklit.