Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Inviare un form in più step

Articolo scritto da Luca Ruggiero

Spesso, in fase di invio dei dati attraverso un form, è preferibile non presentare all'utente un modulo molto lungo al fine di non scoraggiarlo da una compilazione apparentemente lunga e complessa: a tal fine, quindi, è consigliabile dividere il modulo in più step da presentare in sequenza.

Generalmente, si usa associare - all'interno di ciascun blocco - i dati omogenei; ad esempio un modulo di registrazione pottrebbe essere così suddiviso: username, password ed email in un primo blocco blocco, i dati anagrafici in un altro blocco e cosi via.

(L'articolo continua più sotto...)

Grazie alle funzioni predefinite del .NET Framework, è molto semplice in ASP.NET realizzare un simile sistema in cui, all'interno della stessa pagina, avverrà quanto segue:

  1. mostriamo un blocco di dati;
  2. verifichiamo la compilazione;
  3. se corretto, nascondiamo il blocco per passare al successivo.
E cosi via.

Veniamo dunque ad un esempio pratico, iniziando dal codice HTML, opportunamente costruito attraverso il controlli server del .NET:

<form runat="server">
  <p><asp:literal id="numero" runat="server"/></p>
  <p><asp:textbox id="uno" runat="server"/></p>
  <p><asp:button id="c1" runat="server" text="Continua" onclick="Step1"/></p>
  <p><asp:textbox id="due" runat="server"/></p>
  <p><asp:button id="c2" runat="server" text="Continua" onclick="Step2"/></p>
  <p><asp:textbox id="tre" runat="server"/></p>
  <p><asp:button id="c3" runat="server" text="Conferma" onclick="Step3"/></p>
  <p><asp:literal id="messaggio" runat="server"/></p>
</form>

Nel nostro esempio, ogni step è costituito da un unico campo e da un unico bottone di invio: tutti i bottoni porteranno allo step successivo, tranne l'ultimo che porterà alla materiale gestione dei dati.

Notiamo che all'inizio ed alla fine usiamo due elementi testuali: il primo serve ad indicare il numero dello step corrente, mentre in quello in fondo mostreremo i messaggi di errore e di conferma ad operazioni concluse.

Analizziamo il codice VB.NET:

<script runat="server" Language="VB">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
  If Page.IsPostBack = False Then
    numero.Text = "Step 1"
    due.Visible = False
    tre.Visible = False
    c2.Visible = False
    c3.Visible = False
  End If
End Sub
Private Sub Step1(sender As Object, e As System.EventArgs)
  If uno.Text = "" Then
    messaggio.Text = "Campo obbligatorio!"
    Exit Sub
  End If
  numero.Text = "Step 2"
  uno.Visible = False
  due.Visible = True
  c1.Visible = False
  c2.Visible = True
  messaggio.Text = ""
End Sub
Private Sub Step2(sender As Object, e As System.EventArgs)
  If due.Text = "" Then
    messaggio.Text = "Campo obbligatorio!"
    Exit Sub
  End If
  numero.Text = "Step 3"
  due.Visible = False
  tre.Visible = True
  c2.Visible = False
  c3.Visible = True
  messaggio.Text = ""
End Sub
Private Sub Step3(sender As Object, e As System.EventArgs)
  If tre.Text = "" Then
    messaggio.Text = "Campo obbligatorio!"
    Exit Sub
  End If
  numero.Text = "Risultato"
  tre.Visible = False
  c3.Visible = False
  messaggio.Text = "Uno: " & uno.Text & "<br>Due: " & due.Text & "<br>Tre: " & tre.Text
End Sub
</script>

Innanzitutto, al caricamento della pagina verifichiamo l'evento PostBack per verificare che il contenuto della pagina non sia "falsato". Al suo interno mostriamo il messaggio da far comparire come titolo del primo step e nascondiamo tutti gli elementi degli step successivi.

Abbiamo poi delle routine che verificano la compilazione del campo corrente, nascondono lo step precedente e mostrano quello successivo.

Solo l'ultimo step non mostrerà, ovviamente, uno step successivo, bensì eseguirà la gestione dei dati: nel nostro esempio, limitandosi a mostrare a video i dati stessi.

Lascio al lettore il compito di eseguire quanto segue: creare per ogni step delle Label lato server ed utilizzarle per nascondere tutti i campi di un unico step (es. nome, cognome; username, password; email, sito Web).

Corsi
Corso ASPCorso ASP
Corso completo per la creazione di siti Web dinamici. A partire da 39 €.
Corso ASP.NETCorso ASP.NET
Corso completo per la creazione di applicazioni Web. A partire da 49 €.
Corso SQL e DatabaseCorso SQL e Database
Creazione e gestione di database relazionali. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122