Per organitzar la comunicació interactiva entre un visitant i un lloc web (o millor dit, un navegador amb un servidor web), el programador ha de proporcionar escenaris per a l’intercanvi de dades entre ells. Considerem diverses opcions simples per organitzar la transferència de variables des de l'escriptura client JavaScrip a l'escriptura PHP del servidor i viceversa.
És necessari
Coneixements bàsics de llenguatges PHP, JavaScript i HTML
Instruccions
Pas 1
En l'etapa de formació de la pàgina, no és difícil transferir una variable juntament amb el seu valor d'un script PHP a un script JavaScript. El propi script PHP genera el codi HTML de la pàgina sol·licitada, inclosos els scripts que conté. Això significa que pot escriure qualsevol variable al codi JavaScript que s'hagi de passar juntament amb els seus valors. Per exemple, aquest script php passarà a l'script client una variable anomenada "serverTime" que conté l'hora del servidor actual en el format HOUR: MINUTE:
<? php
$ JSvarName = 'ServerTime';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
imprimeu ''. $ JScode.'alert ("I al servidor ara" + '. $ JSvarName.'); '
?>
Pas 2
La forma més senzilla de passar els noms i els valors de les variables en la direcció oposada (des de l’escriptura JS del navegador del client fins a l’escriptura PHP del servidor web) pot semblar així al codi HTML de la pàgina:
var ara = nova data ();
var varName = 'Hora client';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Aquest script enviarà a l'script test2.php el nom de la variable "clientTime" i el seu valor que conté l'hora actual de l'ordinador en el mateix format HORA: MINUT. Aquest mètode de transferència de dades s'anomena "síncron"; donarà lloc a una recàrrega immediata de la pàgina. Més precisament, en lloc de la pàgina actual, el resultat de l'script test2.php es carregarà al navegador. El codi per a aquest script PHP pot ser així:
<? php
if ($ _ GET) es fa ressò de 'Variable rebuda'.key ($ _ GET). '='. $ _ GET [clau ($ _ GET)];
?>
Podeu combinar les tres parts considerades del codi per passar variables del servidor al navegador i tornar-les a un fitxer php com aquest:
<? php
if ($ _ GET) fa ressò de 'Variable rebuda'.key ($ _ GET). '='. $ _ GET [clau ($ _ GET)];
$ JSvarName = 'Hora del servidor';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
imprimeu ''. $ JScode.'alert ("I al servidor ara" + '. $ JSvarName.'); '
?>
funció sendData () {
var ara = nova data ();
var varName = 'ClientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
tornar fals;
}
Enviar dades al servidor En aquest script combinat (PHP + JavaScript), el codi php generarà codi JavaScript "passant" una variable anomenada "serverTime" amb un valor que conté l'hora del servidor actual. Quan la pàgina es carrega al navegador, l'script JavaScript mostrarà un missatge amb aquesta hora. A continuació, l'usuari fa clic a l'enllaç "Envia dades al servidor" per iniciar la funció sendData (), que enviarà una sol·licitud GET al servidor, passant el nom de la variable ("clientTime") i el seu valor (hora del client) al php guió. Un script PHP, després d'haver llegit el nom i el valor d'una variable de la matriu superglobal $ _GET, l'imprimirà i començarà de nou tot l'script descrit.
Pas 3
Tot el descrit anteriorment implementa l'escenari de la transferència de dades "síncrona". La implementació del mètode "asíncron" d'intercanvi de dades entre scripts de client i servidor té el seu propi nom AJAX (Asynchronous Javascript i XML). Aquest tema mereix un article a part.