Um eine interaktive Kommunikation zwischen einem Besucher und einer Website (bzw. einem Browser mit einem Webserver) zu organisieren, muss der Programmierer Szenarien für den Datenaustausch zwischen ihnen bereitstellen. Betrachten wir einige einfache Optionen, um die Übertragung von Variablen vom Client-JavaScript-Skript zum Server-PHP-Skript und umgekehrt zu organisieren.
Es ist notwendig
Grundkenntnisse in PHP, JavaScript und HTML-Sprachen
Anleitung
Schritt 1
Im Stadium der Seitenbildung ist es nicht schwer, eine Variable mit ihrem Wert von einem PHP-Skript in ein JavaScript-Skript zu übertragen. Das PHP-Skript selbst generiert den HTML-Code der angeforderten Seite inklusive der darin enthaltenen Skripte. Das bedeutet, dass er beliebige Variablen in den JavaScript-Code schreiben kann, die zusammen mit ihren Werten übergeben werden sollen. Zum Beispiel übergibt dieses PHP-Skript an das Client-Skript eine Variable namens "serverTime", die die aktuelle Serverzeit im Format HOUR: MINUTE enthält:
<?php
$ JSvarName = 'serverTime';
$ JSvarValue = Datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Und jetzt auf dem Server" + '. $ JSvarName.'); '
?>
Schritt 2
Die einfachste Möglichkeit, die Namen und Werte von Variablen in umgekehrter Richtung (vom JS-Skript im Browser des Clients an das PHP-Skript auf dem Webserver) zu übergeben, kann im HTML-Code der Seite so aussehen:
var now = neues Datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varWert;
Dieses Skript sendet an das Skript test2.php den Namen der Variablen "clientTime" und ihren Wert, der die aktuelle Computerzeit im gleichen Format HOUR: MINUTE enthält. Diese Methode der Datenübertragung wird als "synchron" bezeichnet - sie führt zu einem sofortigen Neuladen der Seite. Genauer gesagt wird anstelle der aktuellen Seite das Ergebnis des Skripts test2.php in den Browser geladen. Der Code für dieses PHP-Skript könnte so aussehen:
<?php
if ($ _ GET) echo 'Empfangene Variable'.key ($ _ GET) '=' $ _ GET [key ($ _ GET)];
?>
Sie können alle drei betrachteten Teile des Codes zum Übergeben von Variablen vom Server an den Browser und zurück in eine PHP-Datei wie folgt kombinieren:
<?php
if ($ _ GET) echo 'Empfangene Variable'.key ($ _ GET) '=' $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = Datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("Und jetzt auf dem Server" + '. $ JSvarName.'); '
?>
Funktion sendData() {
var now = neues Datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varWert;
falsch zurückgeben;
}
Daten an Server senden In diesem kombinierten (PHP + JavaScript) Skript generiert der PHP-Code JavaScript-Code, indem er eine Variable namens "serverTime" mit einem Wert "übergibt", der die aktuelle Serverzeit enthält. Wenn die Seite in den Browser geladen wird, zeigt das JavaScript-Skript eine Meldung mit dieser Uhrzeit an. Dann klickt der Benutzer auf den Link "Daten an Server senden", um die Funktion sendData() zu starten, die eine GET-Anfrage an den Server sendet und den Variablennamen ("clientTime") und ihren Wert (Client-Zeit) an die php weitergibt Skript. Ein PHP-Skript, das den Namen und den Wert einer Variablen aus dem superglobalen Array $_GET gelesen hat, wird es ausgeben und das gesamte beschriebene Skript erneut starten.
Schritt 3
Alles oben Beschriebene implementiert das Szenario der "synchronen" Datenübertragung. Die Implementierung der "asynchronen" Methode zum Datenaustausch zwischen Client- und Server-Skripten hat ihren eigenen Namen AJAX (Asynchronous Javascript and XML). Dieses Thema verdient einen eigenen Artikel.