back to top

Inviare un form col metodo POST con AJAX e jQuery

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.

Pubblicità

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.

Altri contenuti interessanti

Pubblicità

Potrebbero interessarti queste guide

Leggi anche...

Numeri Random in JavaScript

La generazione di numeri random (numeri casuali) è un’operazione...

Infinite scroll, come programmarlo su AMP e su Web con Javascript

L'infinite scroll è una tecnica di design e navigazione...

Codice Fiscale: 5 javascript per la verifica e il calcolo

Il codice fiscale è un identificativo tributario univoco che...

Math.ceil() – Arrotondare per eccesso con Javascript

Il metodo ceil() dell'oggetto Math di Javascript è utilizzato...

Minificare Javascript: librerie e strumenti online per comprimere il sorgente JS

La minificazione è un processo abbastanza diffuso nell'implementazione delle...

Javascript: svuotare un campo input o una textarea con un click

Quando si fornisce agli utenti un modulo per l'inserimento...
Pubblicità