In questo articolo vedremo come utilizzare la libreria jQuery, che dispone di comodissime funzioni per lavorare con AJAX e semplificare le operazioni con il DOM. Nello specifico vedremo come effettuare il submit di un form inviando dati col metodo POST via Ajax ad un’applicazione web.
Facciamo un semplice esempio di invio dei dati in POST con AJAX, recuperandoli sia via ASP che via PHP, considerando che gli script lato server si limiteranno a stampare a video i dati inviati: al lettore il compito di gestirli a seconda delle proprie esigenze progettuali.
Per prima cosa richiamiamo la libreria jquery.js nell’header della nostra pagina Web:
<script type="text/javascript" src="jquery.js"></script>
Costruiamo ora il form HTML:
<form name="modulo">
<p>Nome</p>
<p><input type="text" name="nome" id="nome"></p>
<p>Cognome</p>
<p><input type="text" name="cognome" id="cognome"></p>
<input type="button" id="bottone" value="Invia i dati">
</form>
<div id="risultato"></div>
Abbiamo creato un semplicissimo modulo che contiene due campi di input, un bottone per inviare i dati e un layer in cui verrร stampato a video il risultato dell’operazione.
Analizziamo adesso il codice Javascript per gestire il form:
<script type="text/javascript">
$(document).ready(function() {
$("#bottone").click(function(){
var nome = $("#nome").val();
var cognome = $("#cognome").val();
$.ajax({
type: "POST",
url: "dati.ext",
data: "nome=" + nome + "&cognome=" + cognome,
dataType: "html",
success: function(msg) {
$("#risultato").html(msg);
},
error: function() {
alert("Chiamata fallita, si prega di riprovare...");
}
});
});
});
</script>
Nel codice sopra recuperiamo, attraverso il metodo ajax, le caratteristiche dell’invio: il metodo (POST), la URL del file lato server che gestirร i dati (*), quindi specifichiamo che il valore di ritorno sarร in formato HTML ed infine stampiamo a video il messaggio di conferma o di eventuale errore nella chiamata. ร importante gestire gli errori per migliorare l’esperienza utente.
Si noti che jQuery dispone anche di un’interessante shortcut per gestire le chiamate Ajax col metodo POST in modo piรน conciso:
<script type="text/javascript">
$(document).ready(function() {
$("#bottone").click(function(){
var nome = $("#nome").val();
var cognome = $("#cognome").val();
$.post("dati.ext", { nome: nome, cognome: cognome }, function(msg) {
$("#risultato").html(msg);
});
});
});
</script>
Al metodo post() abbiamo passato, nell’ordine, la URL dello script lato server che riceverร ed elaborerร la richiesta, i dati recuperati dal form e la funzione di callback che stamperร l’output. Questo approccio rende il codice piรน chiaro e diretto.
(*) Seguono ora gli esempi di codice ASP e PHP: nel codice Javascript cambieremo quindi la URL dati.ext con dati.asp piuttosto che con dati.php.
Iniziamo col codice ASP:
<%@LANGUAGE = VBScript%>
<%
Dim nome, cognome
nome = Request.Form("nome")
cognome = Request.Form("cognome")
If nome = "" Or cognome = "" Then
Response.Write "Inserire nome e cognome!"
Else
Response.Write nome & " " & cognome
End If
%>
Il codice ASP recupera i dati, verifica la compilazione del form e quindi li stampa a video. ร fondamentale fornire feedback all’utente riguardo ai dati inseriti.
L’esempio PHP รจ una semplice traduzione del codice ASP:
<?PHP
$nome = $_POST["nome"];
$cognome = $_POST["cognome"];
if ($nome == "" || $cognome == "")
{
echo "Inserire nome e cognome!";
}
else
{
echo $nome . " " . $cognome;
}
?>
In conclusione, possiamo notare quanto – grazie a jQuery – questo procedimento sia davvero semplice e non necessiti di particolari ulteriori spiegazioni. L’uso di AJAX per l’invio di moduli non solo migliora l’esperienza utente rendendo le operazioni piรน fluide, ma permette anche di gestire dati in modo piรน sicuro e strutturato.