Om interactieve communicatie tussen een bezoeker en een website (of liever een browser met een webserver) te organiseren, moet de programmeur scenario's voor de uitwisseling van gegevens tussen hen aanleveren. Laten we eens kijken naar een aantal eenvoudige opties voor het organiseren van de overdracht van variabelen van het JavaScrip-script van de client naar het PHP-script van de server en vice versa.
Het is nodig
Basiskennis van PHP, JavaScript en HTML talen
instructies:
Stap 1
In het stadium van paginavorming is het niet moeilijk om een variabele samen met zijn waarde over te zetten van een php-script naar een JavaScript-script. Het PHP-script genereert zelf de HTML-code van de opgevraagde pagina, inclusief de scripts die deze bevat. Dit betekent dat hij alle variabelen in de JavaScript-code kan schrijven die samen met hun waarden moeten worden doorgegeven. Dit php-script geeft bijvoorbeeld een variabele met de naam "serverTime" door aan het clientscript die de huidige servertijd bevat in de indeling HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("En nu op de server" + '. $ JSvarName.'); '
?>
Stap 2
De eenvoudigste manier om de namen en waarden van variabelen in de tegenovergestelde richting door te geven (van het JS-script in de browser van de client naar het PHP-script op de webserver) kan er als volgt uitzien in de HTML-code van de pagina:
var nu = nieuwe datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Dit script stuurt naar het script test2.php de naam van de variabele "clientTime" en de waarde die de huidige computertijd bevat in hetzelfde formaat HOUR: MINUTE. Deze methode van gegevensoverdracht wordt "synchroon" genoemd - het zal resulteren in een onmiddellijke herlaadbeurt van de pagina. Om precies te zijn, in plaats van de huidige pagina, wordt het resultaat van het test2.php-script in de browser geladen. De code voor dit php-script kan er als volgt uitzien:
<? php
if ($ _ GET) echo 'Ontvangen variabele'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];
?>
Je kunt alle drie de overwogen delen van de code combineren om variabelen van de server naar de browser en terug door te geven in één php-bestand als volgt:
<? php
if ($ _ GET) echo 'Ontvangen variabele'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = datum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("En nu op de server" + '. $ JSvarName.'); '
?>
functie sendData () {
var nu = nieuwe datum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
onwaar retourneren;
}
Gegevens naar de server verzenden In dit gecombineerde script (PHP + JavaScript) genereert de php-code JavaScript-code door een variabele met de naam "serverTime" door te geven met een waarde die de huidige servertijd bevat. Wanneer de pagina in de browser wordt geladen, zal het JavaScript-script een bericht met deze tijd weergeven. Vervolgens klikt de gebruiker op de link "Gegevens naar server verzenden" om de functie sendData () te starten, die een GET-verzoek naar de server stuurt, waarbij de variabelenaam ("clientTime") en de waarde (clienttijd) worden doorgegeven aan de php script. Een php-script, dat de naam en waarde van een variabele uit de $ _GET superglobal array heeft gelezen, zal het afdrukken en het hele beschreven script opnieuw starten.
Stap 3
Alles wat hierboven is beschreven, implementeert het scenario van "synchrone" gegevensoverdracht. De implementatie van de "asynchrone" methode voor het uitwisselen van gegevens tussen client- en serverscripts heeft een eigen naam AJAX (Asynchronous Javascript en XML). Dit onderwerp verdient een apart artikel.