PHP: AJAX
AJAX in PHP
AJAX (Asynchronous JavaScript and XML) permette di aggiornare parti di una pagina senza ricaricarla interamente. Insieme a PHP consente lo scambio di dati in background, migliorando l’esperienza utente nelle applicazioni web moderne.
Introduzione
AJAX non è un linguaggio ma una tecnica che combina JavaScript, XMLHttpRequest (o Fetch API) e PHP per comunicare con il server in modo asincrono. I dati scambiati sono spesso in formato JSON, rendendo il caricamento delle pagine più veloce e interattivo.
Esempio base con AJAX e PHP
Vediamo un esempio semplice: una pagina HTML invia una richiesta AJAX a uno script PHP che restituisce un messaggio in formato JSON.
Codice Esempio: HTML + JavaScript

<!DOCTYPE html>
<html>
<head>
<title>Esempio AJAX</title>
</head>
<body>
<button onclick="caricaDati()">Richiedi dati</button>
<div id="risultato"></div>
<script>
function caricaDati() {
fetch("server.php")
.then(response => response.json())
.then(data => {
document.getElementById("risultato").innerHTML = data.messaggio;
});
}
</script>
</body>
</html>
Codice Esempio: server.php

<?php
header("Content-Type: application/json");
$dati = ["messaggio" => "Risposta dal server PHP"];
echo json_encode($dati);
?>
<!-- Output (JSON):
{"messaggio":"Risposta dal server PHP"}
-->
AJAX con invio di dati
Oltre a ricevere dati, è possibile inviarne. Nell’esempio seguente si manda un nome al server e PHP restituisce una risposta personalizzata.
Codice Esempio: invio dati via POST

<!DOCTYPE html>
<html>
<head>
<title>AJAX con POST</title>
</head>
<body>
<input type="text" id="nome" placeholder="Inserisci il tuo nome">
<button onclick="invia()">Invia</button>
<div id="risposta"></div>
<script>
function invia() {
let nome = document.getElementById("nome").value;
fetch("server_post.php", {
method: "POST",
headers: {"Content-Type": "application/x-www-form-urlencoded"},
body: "nome=" + encodeURIComponent(nome)
})
.then(response => response.json())
.then(data => {
document.getElementById("risposta").innerHTML = data.saluto;
});
}
</script>
</body>
</html>
Codice Esempio: server_post.php

<?php
header("Content-Type: application/json");
$nome = $_POST["nome"] ?? "Ospite";
echo json_encode(["saluto" => "Ciao, " . $nome . "!"]);
?>
<!-- Output (JSON):
{"saluto":"Ciao, Mario!"}
-->
Tabella riassuntiva AJAX e PHP
Componente | Descrizione | Uso tipico |
---|---|---|
JavaScript (Fetch) | Invia richieste asincrone al server. | Recuperare o inviare dati senza ricaricare la pagina. |
PHP | Elabora la richiesta e restituisce la risposta. | Generazione di JSON o HTML dinamico. |
JSON | Formato di scambio dati semplice e compatto. | Trasporto di informazioni tra server e client. |
Considerazioni
AJAX rende le applicazioni web più interattive e fluide. PHP, come linguaggio lato server, si integra perfettamente con AJAX per fornire dati aggiornati in tempo reale. È importante però validare sempre i dati ricevuti ed evitare di esporre informazioni sensibili tramite le chiamate asincrone.