28 messaggi dal 28 gennaio 2004
Ciao Amici,
Come dall'esempio dalla guida vademecum di Aruba, per inviare una form con Cdosys (Asp) utilizzo un ciclo for ... next per rilevare i campi del form.
Ora se volessi NON visualizzare un campo in particolare, come si fa??

Siccome nel form ho un campo "textarea" denominato "privacy" che contiene la legge sulla privacy che non necessariamente mi serve nella e-mail anche perchè è molto lungo. Come si fa a non visualizzarlo??

a Chi mi aiuta offrirò da bere!! :)

Allego lo script

[...]
'*rilevo i campi del form


FOR numeroCampi = 1 TO (Request.Form.Count() - 1)


IF NOT Request.Form(numeroCampi) = "" THEN
corpoMessaggio = corpoMessaggio & "<table width=100% border=1 cellpadding=4 cellspacing=0>" & "<tr>" &_
"<td width=150 bgcolor=#E3E9F2><font size=2><b>" & Request.Form.Key(numeroCampi) & "</b></font></td>" &_
"<td bgcolor=#F8F8F8><font size=2>"& Trim(Request.Form(numeroCampi)) & "</font></td>" & "</tr>" & "</table>"

'IF Request.Form(numeroCampi) = privacy THEN
'Response.Write ""

END IF


NEXT

'* creo gli oggetti cdosys sul server e li gestisco

DIM iMsg, Flds, iConf

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.aruba.it"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update

With iMsg
Set .Configuration = iConf
.To = invioA
.From = Request.Form("email")
.Sender = invioDa
.Subject = "Contatto dal dominio " & nomeDominio
'.TextBody = "Questi i dati inseriti nel modulo presente alla pagina " & modulo & " da utente con indirizzo IP " & indirizzoIp & " browser e sistema operativo " & browserSistemaOperativo & vbCrLf & corpoMessaggio & ""
.HTMLBody = "<font face=verdana size=2>Questi i dati inseriti nel modulo presente alla pagina <b> " & modulo & " </b>da utente con indirizzo IP <b>" & indirizzoIp & " </b> browser e sistema operativo <b>" & browserSistemaOperativo & "</b><br><br>" & corpoMessaggio

.Send
End With
%>
<script>
document.location.replace('grazie.asp');
</script>
34 messaggi dal 31 maggio 2005
Scusa la banalità ma non basta aggiungere un AND nel seguente modo, per escludere il campo "privacy" ?

FOR numeroCampi = 1 TO (Request.Form.Count() - 1) 


IF NOT Request.Form(numeroCampi) = "" AND NOT Request.Form(numeroCampi) = "privacy" THEN 
corpoMessaggio = corpoMessaggio & "<table width=100% border=1 cellpadding=4 cellspacing=0>" & "<tr>" &_ 
"<td width=150 bgcolor=#E3E9F2><font size=2><b>" & Request.Form.Key(numeroCampi) & "</b></font></td>" &_ 
"<td bgcolor=#F8F8F8><font size=2>"& Trim(Request.Form(numeroCampi)) & "</font></td>" & "</tr>" & "</table>" 

END IF 
...........

Ciao
Sandro
Non credo che abbia come valore del campo la stringa "privacy", bensì "privacy" sarà il nome del campo (Request.Form.Key).
Prova così:

FOR numeroCampi = 1 TO (Request.Form.Count() - 1) 

IF NOT Request.Form(numeroCampi) = "" AND NOT Request.Form.Key(numeroCampi) = "privacy" THEN 
corpoMessaggio = corpoMessaggio & "<table width=100% border=1 cellpadding=4 cellspacing=0>" & "<tr>" &_ 
"<td width=150 bgcolor=#E3E9F2><font size=2><b>" & Request.Form.Key(numeroCampi) & "</b></font></td>" &_ 
"<td bgcolor=#F8F8F8><font size=2>"& Trim(Request.Form(numeroCampi)) & "</font></td>" & "</tr>" & "</table>" 

END IF 
........... 



Nello script di Aruba c'è anche un'altra cosa che non mi torna: perché il for termina a Request.Form.Count() - 1? Dovrebbe essere:

For numeroCampi = 1 To Request.Form.Count()
...
Next


altrimenti l'ultimo campo non viene considerato (ok, di solito è il tasto di submit ma non è mica detto!)

Ciao
Matteo

Matteo Casati
GURU4.net
34 messaggi dal 31 maggio 2005
Hai ragione Matteo, avevo dimenticato il .Key ....
ciao
Sandro
28 messaggi dal 28 gennaio 2004
Ciao Amici,
sono solo di passaggio sul forum, domani proverò così come mi avete indicato. Così vi farò sapere!
Dopodichè vino e birra per tutti ;)
Saluti
Giuseppe


P.S. Se vi viene qualche altra soluzione postate pure...
28 messaggi dal 28 gennaio 2004
RISULTATI

1. Ho provato la soluzione di Matteo:
IF NOT Request.Form(numeroCampi) = "" AND NOT Request.Form.Key(numeroCampi) = "privacy" THEN

Funziona alla grande!!

2. Ho fatto anche un' altra prova e ho modificato dal codice che ho postato originariamente il (Request.Form.Count() - 1) da -1 a -3*
Anche questa soluzione funziona supponendo che il campo da non visualizzare sia il penultimo e l'ultimo (oltre poi al submit).
Occorre però eliminare la condizione IF NOT in quanto ho riscontrato che se alcuni campi non solo riempiti (perchè facoltativi) nom mi visualizza anche il campo che in ordine nel form viene subito prima di quelli voglio non visualizzare. Non so perchè...

Comunque grazie a tutti e se venite a Ischia non dimeticate di scrivermi. Perchè ogni promessa è debito!! (... è un piacere)

Ciao e al prossimo post.
Giuseppe

*(a - 3 perchè nel mio form il campo privacy in effetti e il penultimo, oltre al submit e come ultimo ho un checkbox per accettare la privacy.
Va che ti prendo in parola!
Alla prossima.
Matteo

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.