Buon giorno a tutti,
la domanda di oggi è un po' difficilina, almeno per me. Non so neppure se sia realizzabile.
- descrizione del problema:
Ho un form in asp che contiene diversi campi che l'utente deve inserire. Il primo (Cognome nome e classe) è un campo testo a digitazione libera da parte dell'utente.
Per evitare errori o immissione di testo a caso vorrei realizzare questo tipo di controllo:
L'utente scrive il cognome in lettere (la prima maiuscola il resto minuscolo - e questo andrebbe definito nel controllo)
L'inserimento del cognome viene comparato con una tabella del database (data.mdb) e se non presente in essa si riceve messaggio d'errore.
I miei due file che definiscono e controllano l'inserimento sono due e vi copio il codice:
il secondo, inserisci1.asp
Nel database ci sono attualmente 2 tabelle:
- Contatti con i campi: IDContatto - Cognome e classe - IndirizzoPostaElettronica - TelefonoCellulare - NomeInsegnante
- NomeInsegnante con i campi: IDElencoIndirizzi - NomeInsegnante
Suppongo che, premessa la fattibilità della cosa, dovrei creare un'altra tabella con nome Cognome e classe (che dovrebbe verificare i cognomi immessi e dopo verifica positiva scriverli nel campo relativo della prima tabella)
Qualche idea?
Grazie 1000
la domanda di oggi è un po' difficilina, almeno per me. Non so neppure se sia realizzabile.
- descrizione del problema:
Ho un form in asp che contiene diversi campi che l'utente deve inserire. Il primo (Cognome nome e classe) è un campo testo a digitazione libera da parte dell'utente.
Per evitare errori o immissione di testo a caso vorrei realizzare questo tipo di controllo:
L'utente scrive il cognome in lettere (la prima maiuscola il resto minuscolo - e questo andrebbe definito nel controllo)
L'inserimento del cognome viene comparato con una tabella del database (data.mdb) e se non presente in essa si riceve messaggio d'errore.
I miei due file che definiscono e controllano l'inserimento sono due e vi copio il codice:
Codice:
<script type="text/javascript">
function anteprima(ff){
larghezza = 600;
altezza = 400;
var x = (screen.width-larghezza-10)/2;
var y = (screen.height-altezza)/2;
window.open('','anteprima','width=' + larghezza + ',height=' + altezza + ',left=' + x + ',top=' + y);
oldTarget = ff.target
oldAction = ff.action
ff.target='anteprima'
ff.action='anteprima.asp'
ff.submit()
ff.target = oldTarget // aggiunta per non perdere il target alla pagina inserisci.asp
ff.action = oldAction
}
</script>
<form method="post" action="inserisci1.asp">
<p align="left"><font face="arial" size="2"><b>Nome cognome e classe dello studente/studentessa<br>
<input name="Cognome e classe" value="<%=request.form("Cognome e classe")%>" size="20" type="text"></b></font></p>
<p align="left"><font face="arial" size="2"><b>Email - di un genitore<br>
<input name="IndirizzoPostaElettronica" value="<%=request.form("IndirizzoPostaElettronica")%>" size="20" type="text"></b></font></p>
<p align="left"><font face="arial" size="2"><b>Telefono cellulare - di un genitore<br>
<input name="TelefonoCellulare" value="<%=request.form("TelefonoCellulare")%>" size="20" type="text"></b></font></p>
<p align="left"><font face="arial" size="2"><b>Cognome Insegnante con cui si desidera prenotare il colloquio</b><span style="font-weight: bold;"></span></font><font face="arial" size="2"><span style="font-weight: bold;"></span><b><br>
<select name="NomeInsegnante">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("data/data.mdb")
SQL = "Select * FROM NomeInsegnante"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL, Conn
Do While Not objRS.EOF
Response.write "<option name=""" & objRS("NomeInsegnante") & """>" & objRS("NomeInsegnante") & "</option>" & vbCRLF
objRS.MoveNext
Loop
Response.write"</select>"
objRS.Close
Set objRS = Nothing
Conn.Close
Set Conn = Nothing
%>
<br><br>
<input value="Invia" name="B1" type="submit"> <input type="button" value="Anteprima" onclick="anteprima(this.form)"></font></p>
</form>
il secondo, inserisci1.asp
Codice:
<%
a=request.form("Cognome e classe")
b=request.form("IndirizzoPostaElettronica")
c=request.form("TelefonoCellulare")
d=request.form("NomeInsegnante")
' Controllo inserimento indirizzo email Regular Expression minimo 3 lettere per il nome prima di @
Function RegExpTest(strng)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "^[\w\-\.]*[\w\.][\w\-\.]*[\w\.][\w\-\.]*[\w\.]\@[\w\.]*[\w\-\.]+[\w\-]+[\w]\.+[\w]+[\w]$"
regEx.IgnoreCase = True
RegExpTest = regEx.Test(strng)
End Function
' Controllo inserimento numero di telefono Regular Expression solo Numeri
Function RegExpTest1(strng1)
Dim regEx1
Set regEx1 = New RegExp
regEx1.Pattern = "^[0-9]"
RegExpTest1 = regEx1.Test(strng1)
End Function
' controllo pagina di provenienza se diversa dal form ritorna a quella pagina
conferma=request.form("conferma")
conferma=request.servervariables("http_referer")
if conferma = "" then
response.redirect "prenota.asp" ' redirect alla pagina di compilazione del form
end if
' Controllo inserimento Nome campo vuoto primo carattere no spazio
if a = "" or MID((a),1,1) = " " then
Response.Write"Inserire il Cognome e la Classe! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
' controllo inserimento email campo vuoto primo carattere no spazio
if b = "" or MID((b),1,1) = " " then
Response.Write"Inserire l'indirizzo di Email! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
' Controllo e validazione inserimento indirizzo email
if not(RegExpTest(b)) then
Response.Write"Inserire un indirizzo di Email Valido! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
' controllo inserimento Numero Cellulare campo vuoto primo carattere no spazio
if c = "" or MID((c),1,1) = " " then
Response.Write"Inserire il Numero di Cellulare! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
' Controllo e validazione Numero Cellulare
if not(RegExpTest1(c)) then
Response.Write"Il campo Numero Cellulare può contenere solo Numeri! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
' controllo inserimento Numero Cellulare non deve contenere numeri minori o maggiori di 10 3383333333
if Len(c) < 10 or Len(c) > 10 then
Response.Write"Il Numero di Cellulare deve contenere dieci (10) Numeri! "
response.write"<a href="" javascript:void(0)""a onclick=""javascript:history.back(0)""; >Torna indietro e correggi</a>"
response.end
end if
'apro la connessione
set OBJdbConnection=Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("data/data.mdb")
Set rs=server.CreateObject("ADODB.Recordset")
rs.Open "Contatti" ,OBJdbConnection,3,3
rs.AddNew
rs("Cognome e classe")=a
rs("IndirizzoPostaElettronica")=b
rs("TelefonoCellulare")=c
rs("NomeInsegnante")=d
rs.update
rs.Close
OBJdbConnection.Close
response.write "Scrittura avvenuta correttamente!"
%>
Nel database ci sono attualmente 2 tabelle:
- Contatti con i campi: IDContatto - Cognome e classe - IndirizzoPostaElettronica - TelefonoCellulare - NomeInsegnante
- NomeInsegnante con i campi: IDElencoIndirizzi - NomeInsegnante
Suppongo che, premessa la fattibilità della cosa, dovrei creare un'altra tabella con nome Cognome e classe (che dovrebbe verificare i cognomi immessi e dopo verifica positiva scriverli nel campo relativo della prima tabella)
Qualche idea?
Grazie 1000