Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Conferma selezione checkbox in form e.mail

    Ho un problema nella verifica dei dati inseriti in un form e.mail nel quale oltre ai campi normali ho tre checkbox ("soluzioni").

    Se un campo non viene compilato compare regolarmente la scritta di tornare indietro a compilarlo.
    Questo però non si verifica se non viene messa la spunta in alcuna casella checkbox e l'e.mail parte lo stesso.

    Vorrei che, sia se un campo non viene compilato sia se non viene messa la spunta un un checkbox, il messaggio non partisse e facesse tornare indietro l'utente a compilare regolarmente il form.

    Di seguito riporto il codice che ho usato.


    <%
    Set Mail = Server.CreateObject("Persits.MailSender")

    ....ecc.ecc.

    Body = Body & "COGNOME: " & Request("Cognome") & chr(13) & chr(10)
    Body = Body & "NOME: " & Request("Nome") & chr(13) & chr(10)
    Body = Body & "INDIRIZZO: " & Request("Indirizzo") & chr(13) & chr(10)
    Body = Body & "COMUNE: " & Request("Comune") & chr(13) & chr(10)
    Body = Body & "E.MAIL: " & Request("Email") & chr(13) & chr(10)
    Body = Body & "TELEFONO: " & Request("Telefono") & chr(13) & chr(10)
    Body = Body & "SOLUZIONI: " & Request("Soluzione") & chr(13) & chr(10)

    Mail.Send
    %>


    <%

    For Each item in Request.Form()
    If Request.Form(Item) = "" Then Errore = Errore & ("Il dato ") & Item & " non è stato inserito. Si prega tornare indietro e compilare tutti i campi. Grazie.

    "
    Next

    If Errore <> "" Then
    Response.write Errore
    Response.End
    End if
    %>

    Qualcuno può gentilmente dirmi dove sbaglio?

    Grazie

  2. #2
    Ciao, credo che il problema sia nel fatto che se non viene messa la spunta ad un checkbox non viene passato nessun valore di "name" del campo di input del form, quindi nel ciclo non viene rilevato perchè vuoto.

    Fai questa prova, nel ciclo inserisci un response.write per ogni "Item" e vedrai che se nessun checkbox è selezionato non ti viene visualizzato il "name" Soluzione:

    codice:
    For Each item in Request.Form()
    	Response.Write(Item & ": "& Request.Form(Item) & "
    ")
    Next
    credo ti convenga mettere un altro controllo nella gestione degli errori, verifica nel ciclo se esiste un campo Item = Soluzione altrimenti generi l'errore.

    fulvio

  3. #3
    ti ringrazio delle indicazioni... credo di aver capito cosa intendi. Ora provo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.