Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Campi di un form

  1. #1

    Campi di un form

    Salve a tutti, ho un problema relativo ai campi di un form per l'invio di una mail.
    Ho 2 pagine asp una dove ho implementato il modulo per il contatto con i vari campi testo, date ecc.., un'altra dove raccolgo i dati, controllo che i campi non siano vuoti ed invio la mail. Se i campi sono vuoti tramite uno script alert comunico che i campi sono obbligatori, cliccando su ok tramite history.go(-1) torna indietro alla pagina del form.
    Allora il problema sorge proprio al ritorno alla pagina del form, mi capita che a volte i campi sono pieni del testo inserito dall'utente invece altre volte i campi sono vuoti.

    controllo che i campi siano vuoti
    codice:
    if (nome = "" or cognome = "" or cognome = "" ) then
    Response.Write "<SCRIPT>alert('I campi contrassegnati con * sono obbligatori ');history.go(-1);</SCRIPT>"
    
    else 
    Invio la mail
    Come posso fare affinche i campi restino pieni?

    devo per forza fare un controllo con del codice js nella pagina del form? o c'è una soluzione che possa andar bene per come l'ho progettata io?

    Grazie Francy

  2. #2
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    io di solito uso il doppio controllo:
    - js sulla prima pagina contenente il form
    - asp sulla pagina dell'action del form

    nel caso i js sono disabilitati almeno c'è la pagina asp che ferma tutto
    per tornare indietro da asp ... beh un altro form con campi tutti hidden e action la pagina che ha il modulo

    nella pagina col modulo ogni campo sarà uguale a request.form("nome") ... se c'è qualcosa lo riempie da solo sennò resta vuoto

  3. #3
    Grazie per l'aiuto, è una cosa a cui non avevo pensato usare il request

    Per quello che riguarda il js nemmeno io preferisco usarlo ma non avevo altre idee

    Grazie ancora Francy

  4. #4
    Potresti anche utilizzare il request.form nella 2 pagina (action) prima di eventuali controlli e memorizzare tutti i dati request.form in variabili application che verranno inserite sempre nel valore del campo con
    VALUE='<%=Application("valoreregistrato")' cosi anche se l'utente commette errori di ricarica ha sempre i campi pieni se li ha digitati.

    Per controllo userei un IF-THEN quando trovo un campo application vuoto e con redirect tornare indietro indicando il campo vuoto con un icona freccia rossa o altro
    grario

  5. #5
    Grazie per la risposta, al posto di application ho usato le session, e così facendo riesco a gestire i valori e farmi ripopolare i campi che sono stati riempiti.
    Se invece i campi sono corretti invia la mail e distrugge la sessione.
    ho un problema però, per quello che riguarda i campi di testo va tutto bene, in value mi riciamo la session e la faccio stampare, il problema però mi sorge nella textbox e nella combo, in questi due non riesco a far ricomparire i valori.
    Avevo provato da inserire in testa un valore nullo ma non risco a farlo caricare.
    Ad esempio per il campo nome lo gestisco in questo modo:

    codice:
    <input name="Nome" type="text"  size="25" value="<%response.Write(session("nome"))%>"/>
    invece per le combo?

    codice:
    <select name="Numero">
            <option value=""></option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            </select>
    e le box
    codice:
    <textarea name="Commenti" cols="46" rows="4" value="<%response.Write(session("commenti"))%>"></textarea>
    Grazie Francy

  6. #6
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    sinceramente application e session li eviterei dato che sono semplici campi di form .. che si posson tranquillamente rimandare sempre da form..con un js che fa l'autopsubmit dello stesso nella pagina di controllo
    Aplication e session per sto caso vanno solo a utilizzare memoria del server imho inutilmente

    per le select vedi in html la sintassi dovrebbe essere selected .. ovviamente sempre sotto if ... esempio
    codice:
    valore_numero = request.form("numero")
    
    response.write("<select name=""numero"">")
    for x=1 to 5
            response.write("<option value=""" & x & """")
            if int(valore_numero) = x then
                 response.write(" selected")
            end if
            response.write(">" & x & "</option>")
    next
    response.write("</select>")
    per le textarea stesso discorso di cui sopra..vedere il codice corretto html, in particolare è:
    codice:
    valore_commenti = request.form("commenti")
    
    response.write("<textarea name=""commenti"" cols=""46"" rows=""4"">" & valore_commenti & "</textarea>")
    i campi del form di "rimando" saranno tutti degli hidden ovviamente e, per le select, conterranno SOLO il valore scelto prima dall'utente

  7. #7
    E se per caso la pagina si perde e si deve ricaricare?
    Con application la variabile è sempre carica.

    Anche io eviterei le variabili session: troppo impegnativa.

    Per le textarea si una una variabile normale (Application)
    per le select è come dice Fichico, e cioè:

    <option <%=Application("valoresel")%> value="1" >1</option>
    se la variabile Applic-valoresel è piena scrive Selected.
    grario

  8. #8
    Grazie per i preziosi consigli, ho risolto tutti e due i miei problemi.
    Comunque ho usato le variabili di sessione perchè essendo un modulo di richiesta potrebbe anche essere che più utenti contemporaneamente ne facciano uso.
    Per quello che so io le session sono uniche per ogni utente, al contrario delle application che sono uniche per tutti gli utenti.
    Spero di non sbagliare fatelo se sbaglio, si è qui per imparare e confrontarsi.

    A presto Francy

  9. #9
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    Originariamente inviato da grario
    E se per caso la pagina si perde e si deve ricaricare?
    Con application la variabile è sempre carica.

    Anche io eviterei le variabili session: troppo impegnativa.

    Per le textarea si una una variabile normale (Application)
    per le select è come dice Fichico, e cioè:

    <option <%=Application("valoresel")%> value="1" >1</option>
    se la variabile Applic-valoresel è piena scrive Selected.
    ma io uso questa soluzione da anni e non ho mai "perso" la pagina di richiamo, e continuo a dire che non ha troppo senso tenere var sul server per un form ... poi fate vobis

    per le select io non ho scritto come te .. vedi meglio, la select prende un valor e non se è pieno oppure no

  10. #10
    si hai ragione sulla variabile di sessione, probabilmente è + corretto il tuo modo.

    Per la select, ho sbagliato a scrivere intendevo:
    se 1 fai una cosa, se 2 fai un altra, ecc...
    se è 0(zero) non fare niente.
    grario

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.