Per organizzare la comunicazione interattiva tra un visitatore e un sito web (o meglio, un browser con un server web), il programmatore deve fornire scenari per lo scambio di dati tra di loro. Consideriamo alcune semplici opzioni per organizzare il trasferimento di variabili dallo script JavaScrip del client allo script PHP del server e viceversa.
È necessario
Conoscenza di base dei linguaggi PHP, JavaScript e HTML
Istruzioni
Passo 1
Nella fase di formazione della pagina, non è difficile trasferire una variabile insieme al suo valore da uno script php a uno script JavaScript. Lo script PHP stesso genera il codice HTML della pagina richiesta, inclusi gli script che contiene. Ciò significa che può scrivere qualsiasi variabile nel codice JavaScript che dovrebbe essere passato insieme ai loro valori. Ad esempio, questo script php passerà allo script client una variabile denominata "serverTime" contenente l'ora corrente del server nel formato HOUR: MINUTE:
<?php
$ JSvarName = 'serverTime';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("E ora sul server" + '. $ JSvarName.'); '
?>
Passo 2
Il modo più semplice per passare i nomi e i valori delle variabili nella direzione opposta (dallo script JS nel browser del client allo script PHP sul server web) può apparire così nel codice HTML della pagina:
var ora = nuova data ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Questo script invierà allo script test2.php il nome della variabile "clientTime" e il suo valore contenente l'ora corrente del computer nello stesso formato HOUR: MINUTE. Questo metodo di trasferimento dei dati è chiamato "sincrono" - risulterà in un ricaricamento immediato della pagina. Più precisamente, al posto della pagina corrente, verrà caricato nel browser il risultato dello script test2.php. Il codice per questo script php potrebbe essere simile a questo:
<?php
if ($ _ GET) echo 'Variabile ricevuta'.key ($ _ GET). '='. $ _ GET [chiave ($ _ GET)];
?>
Puoi combinare tutte e tre le parti considerate del codice per passare le variabili dal server al browser e di nuovo in un file php in questo modo:
<?php
if ($ _ GET) echo 'Variabile ricevuta'.key ($ _ GET). '='. $ _ GET [chiave ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = data ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("E ora sul server" + '. $ JSvarName.'); '
?>
funzione sendData() {
var ora = nuova data ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
restituire falso;
}
Invia dati al server In questo script combinato (PHP + JavaScript), il codice php genererà codice JavaScript "passando" una variabile denominata "serverTime" con un valore contenente l'ora corrente del server. Quando la pagina viene caricata nel browser, lo script JavaScript visualizzerà un messaggio con questa ora. Quindi l'utente clicca sul link "Send data to server" lancerà la funzione sendData(), che invierà una richiesta GET al server, passando il nome della variabile ("clientTime") e il suo valore (client time) al php sceneggiatura. Uno script php, dopo aver letto il nome e il valore di una variabile dall'array superglobal $ _GET, lo stamperà e riavvierà l'intero script descritto.
Passaggio 3
Tutto quanto sopra descritto implementa lo scenario del trasferimento dati "sincrono". L'implementazione del metodo "asincrono" di scambio dati tra script client e server ha il proprio nome AJAX (Asynchronous Javascript and XML). Questo argomento merita un articolo a parte.