In talune situazioni potrebbe essere comodo eseguire codice PHP attraverso Javascript. A prima vista la combinazione di questi due linguaggi potrebbe apparire impossibile: PHP è un linguaggio che opera lato-server mente Javascript lato-client.
Sapendo che all’interno di un file Javascript non posso scrivere codice PHP, perchè il secondo possa integragire attraverso il primo serve qualche stratagemma.
Javascript è un linguaggio straordinario: ci consente di interagire con l’utente creando interfacce utente sempre più interattive e coinvolgenti. Poter “lanciare” programmi PHP da Javascript significa, pertanto, introdurre un ancor maggiore livello di interattività, potendo contare anche su operazioni eseguite a livello server.
Nulla vieta di utilizzare codice PHP all’interno di uno script lato-client.
Si supponga, ad esempio di dover valorizzare una variabile Javascript con un output prodotto da PHP.
Per farlo sarà sufficiente inserire direttamente il codice Javascript all’interno dell’output prodotto dalla nostra pagina PHP (ad esempio “index.php”):
<html> <head> <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D%22%2Flato_server.php%22%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" /> </head> <body> </body> </html>
Quanto proposto qui sopra non funzionerà, ovviamente, qualora si cerchi di utilizzare codice PHP all’interno di un Javascript esterno (un file “.js”): in questo caso, infatti, l’interprete PHP non agirà e il codice PHP sarà trattato come del semplice testo.
Eseguire file PHP come se fossero file Javascript
Un trucco per eseguire codice Javascript “potenziato” con PHP consiste nell’includere, all’interno della nostra pagina web, un vero e proprio file PHP richiamandolo attraverso l’attributo src di un tag Attraverso questa tecnica il nostro file PHP verrà eseguito al caricamento della pagina. Una simile implementazione potrebbe essere idonea in alcuni contesti come, ad esempio, lo sviluppo di sistemi di analytics (in quanto con PHP si potrebbero registrare gli accessi alla pagina web) o al lancio di operazioni pianificate.
Eseguire PHP attraverso AJAX
Grazie alla tecnologia AJAX è possibile effettuare una chiamata asincrona ad un qualsiasi script eventualmente anche recuprandone l’output (che potrà poi essere manipolato lato client)!
Per prima cosa vediamo come sarebbe possibile effettuare una semplice chiamata AJAX ad un file PHP affinchè possano essere svolte determinate operazioni lato-server:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {};
xhr.open('GET', '/lato_server.php');
xhr.send()
Quando questo script verrà eseguito, il browser effettuerà una chiamata al file "lato_server.php" che potrà svolgere i suoi compiti. Nulla vieta di sottoporre l’esecuzione di questo codice al verificarsi di un qualche evento come, ad esempio, la pressione di un pulsante.
Eseguire PHP in modo asincrono con jQuery
Se nel nostro progetto web abbiamo incluso la libreria jQuery l’interazione tra PHP e Javascript sarà ancora più semplice. Volendo riprodurre lo stesso esempio visto poco sopra, con jQuery sarebbe bastato una riga di codice:
$.ajax(
'type': 'GET',
'url': '/lato_server.php'
);
Volendo avremmo potuto anche passare dei parametri al nostro file PHP, in questo modo:
$.ajax(
'type': 'GET',
'url': '/lato_server.php',
'data': 'nome=Mario&cognome=Rossi'
);
Così facendo, nel nostro esempio, abbiamo passato con metodo GET due coppie di chiave valore. Ovviamente tali valori potrebbero essere catturati dinamicamente da un form o ricavati da una qualsivoglia attività compiuta dall’utente.
Ma non solo. Grazie ad AJAX abbiamo anche la possibilità di intercettare un eventuale output prodotto dallo script lato-server per poi manipolarlo lato-cliente, ad esempio:
$.ajax(
'type': 'GET',
'url': '/lato_server.php',
'data': 'nome=Mario&cognome=Rossi',
'success': function(risposta) {
alert(risposta)
}
);
Questo codice cattura l’output prodotto lato-server (ad esempio una stringa di testo del tipo "Ciao Mario Rossi, grazie per esserti registrato al sito!") e lo mostra all’utente attraverso un alert().
Quelli visti sopra sono solo esempi, ma le potenzialità di AJAX sono davvero infinite. Per chi desiderasse approfondire l’argomento consiglio la lettura di questo interessante articolo dedicato all’implementazione di AJAX con jQuery.
Conclusioni
In questo articolo abbiamo visto diverse metodiche attraverso le quali è possibile integrare PHP all’interno di Javascript. La "fusione" di questi due linguaggi consente di risolvere in modo creativo soluzioni apparentemente complesse