Corsi on-line

Esecuzione di codice PHP da JavaScript

Innanzitutto sgombriamo il campo dagli equivoci: non è possibile lanciare una funzione o una generica istruzione PHP da JavaScript o da framework basati su quest’ultimo, come per esempio jQuery; tale mancanza può essere spiegata facilmente, JavaScript infatti lavora a livello client side (ignoriamo per un momento l’esistenza di soluzioni come Node.Js che non riguardano questa trattazione) mentre PHP viene eseguito lato server.

javascript_logoAttraverso JavaScript è invece possibile effettuare la richiesta di una pagina PHP, a sua volta contenente delle istruzioni da lanciare tramite l’engine di quest’ultimo; in sostanza JavaScript si limiterà a lanciare uno o più input via HTTP, senza effettuare alcuna inclusione di codice dinamico e senza alcuna interazione diretta con quest’ultimo. L’esempio seguente mostra il sorgente di un semplice script PHP destinato alla generazione di una directory a cui associare dei permessi specifici:

<?php mkdir('/docs/fatture', 0755, true); ?>

Salvando questa riga di codice in un file chiamato, per esempio, “crea_directory.php“, lo si potrà richiamare tramite JavaScript in questo modo:

$.ajax({
  url: 'crea_directory.php',
  success: function() {
    alert('Creazione della directory avvenuta con successo.');
  }
});

Analogamente sarà possibile associare la chiamata ad un evento, come per esempio l’utilizzo di un pulsante, in modo che la creazione della directory avvenga soltanto su input dell’utente e non al caricamento della pagina; tanto per completezza è inoltre possibile intercettare la risposta conseguente alla richiesta prevedendo un valore di ritorno anche in caso negativo:

$('button').click(function() {
    $.ajax({
        url: 'crea_directory.php',
        success: function(){
             alert('Creazione della directory avvenuta con successo.');
        }
    });
    return false;
});

Un caso ancora più interessante è quello che riguarda il passaggio di parametri; il codice proposto di seguito sfrutterà il metodo POST per l’invio di parametri ad uno script PHP contenuto nella pagina “elabora_input.php“:

$.post( 
    'elabora_input.php',
    { famiglia: "Simpson", nome: "Homer", anni: 39 }, 
    function( data ){  
        $( 'body ').append( data );
});

Si potrà inoltre sfruttare il metodo GET per ottenere lo stesso risultato:

$(document).ready(function(
    $.ajax({ url: 'elabora_input.php?famiglia=Simpson&nome=Homer&anni=39' });
));

Le procedure disponibili sono quindi diverse, basterà dunque scegliere quella più adatta alla natura del proprio progetto.

Post correlati
I più letti del mese
Tematiche