För att organisera interaktiv kommunikation mellan en besökare och en webbplats (eller snarare en webbläsare med en webbserver) måste programmeraren tillhandahålla scenarier för datautbyte mellan dem. Låt oss överväga flera enkla alternativ för att organisera överföringen av variabler från klienten JavaScrip-skript till serverns PHP-skript och vice versa.
Det är nödvändigt
Grundläggande kunskaper i PHP, JavaScript och HTML-språk
Instruktioner
Steg 1
Vid sidan av sidbildning är det inte svårt att överföra en variabel tillsammans med dess värde från ett php-skript till ett JavaScript-skript. Själva PHP-skriptet genererar HTML-koden för den begärda sidan, inklusive de skript den innehåller. Detta innebär att han kan skriva alla variabler i JavaScript-koden som ska skickas tillsammans med deras värden. Till exempel skickar detta php-skript till klientskriptet en variabel med namnet "serverTime" som innehåller den aktuella servertiden i formatet HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
skriva ut ''. $ JScode.'alert ("Och på servern nu" + '. $ JSvarName.'); '
?>
Steg 2
Det enklaste sättet att skicka namn och värden på variabler i motsatt riktning (från JS-skriptet i klientens webbläsare till PHP-skriptet på webbservern) kan se ut så här i HTML-koden på sidan:
var nu = nytt datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Detta skript skickar namnet på variabeln "clientTime" till skriptet test2.php och dess värde som innehåller den aktuella datortiden i samma format HOUR: MINUTE. Denna metod för överföring av data kallas "synkron" - det kommer att resultera i en omedelbar omladdning av sidan. Mer exakt, istället för den aktuella sidan laddas resultatet av test2.php-skriptet till webbläsaren. Koden för detta php-skript kan se ut så här:
<? php
if ($ _ GET) echo 'Mottagen variabel'. nyckel ($ _ GET). '='. $ _ GET [key ($ _ GET)];
?>
Du kan kombinera alla tre viktiga delar av koden för att överföra variabler från servern till webbläsaren och tillbaka till en sådan php-fil:
<? php
if ($ _ GET) echo 'Mottagen variabel'. nyckel ($ _ GET). '='. $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
skriva ut ''. $ JScode.'alert ("Och på servern nu" + '. $ JSvarName.'); '
?>
funktion sendData () {
var nu = nytt datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
returnera falsk;
}
Skicka data till servern I det här kombinerade (PHP + JavaScript) -skriptet genererar php-koden JavaScript-kod genom att "skicka" en variabel med namnet "serverTime" med ett värde som innehåller den aktuella servertiden. När sidan laddas in i webbläsaren visar JavaScript-skriptet ett meddelande med den här tiden. Sedan klickar användaren på länken "Skicka data till server" för att starta funktionen SendData (), som skickar en GET-begäran till servern och skickar variabelnamnet ("clientTime") och dess värde (klienttid) till php manus. Ett php-skript, som har läst namnet och värdet på en variabel från $ _GET superglobal array, kommer att skriva ut det och starta hela det beskrivna skriptet igen.
Steg 3
Allt som beskrivs ovan implementerar scenariot för "synkron" dataöverföring. Implementeringen av den "asynkrona" metoden för utbyte av data mellan klient- och serverskript har sitt eget namn AJAX (Asynchronous Javascript and XML). Detta ämne förtjänar en separat artikel.