Ciao, nel programma che sto facendo ho una parte di inserimento clienti che viene effettuanto partendo dal codice fiscale o partita iva. Ho una pagina iniziale dove inserisco o il codice fiscale o la partita iva e un bottone che cliccandolo viene effettuato il controllo di correttezza di uno dei due campi compilati e se giusti porta alla pagina di inserimento dei dati anagrafici del cliente. Il programma dovrebbe far si che se la stringa inserita � giusta porta all'altra pagina, se � sbagliata esce l'avviso di errore come allert e poi rimane nella stessa pagina per poter reinserire il cod fiscale o partita iva.
Il mio problema � che se la stringa � sbagliata esce l'errore allert ma poi passa alla pagina di inserimento anagrafica cosa che non dovrebbe fare.
Queste sono le due pagine
controllo.asp
codice:
<HTML>
<script language=JavaScript>
<!--
function ControllaCF(cf)
{
var validi, i, s, set1, set2, setpari, setdisp;
if( cf == '' ) return '';
cf = cf.toUpperCase();
if( cf.length != 16 )
return "La lunghezza del codice fiscale non �\n"
+"corretta: il codice fiscale dovrebbe essere lungo\n"
+"esattamente 16 caratteri.\n";
validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for( i = 0; i < 16; i++ ){
if( validi.indexOf( cf.charAt(i) ) == -1 )
return "Il codice fiscale contiene un carattere non valido `" +
cf.charAt(i) +
"'.\nI caratteri validi sono le lettere e le cifre.\n";
}
set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
s = 0;
for( i = 1; i <= 13; i += 2 )
s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
for( i = 0; i <= 14; i += 2 )
s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
return "Il codice fiscale non � corretto:\n"+
"eventualmente chiamare il cliente per conferma.\n";
return "";
}
function ControllaPIVA(pi)
{
if( pi == '' ) return '';
if( pi.length != 11 )
return "La lunghezza della partita IVA non �\n" +
"corretta: la partita IVA dovrebbe essere lunga\n" +
"esattamente 11 caratteri.\n";
validi = "0123456789";
for( i = 0; i < 11; i++ ){
if( validi.indexOf( pi.charAt(i) ) == -1 )
return "La partita IVA contiene un carattere non valido `" +
pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
}
s = 0;
for( i = 0; i <= 9; i += 2 )
s += pi.charCodeAt(i) - '0'.charCodeAt(0);
for( i = 1; i <= 9; i += 2 ){
c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
if( c > 9 ) c = c - 9;
s += c;
}
if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
return "La partita IVA non � valida:\n" +
"il codice di controllo non corrisponde.\n";
return '';
}
function verificacf()
{
codf = document.form1.codicefiscale.value;
if( codf == '' )
return '';
else if( codf.length == 16 )
err = ControllaCF(codf);
else
err = "Il codice introdotto non � valido:\n\n" +
" - un codice fiscale deve essere lungo 16 caratteri;\n\n" +
" - una partita IVA deve essere lunga 11 caratteri.\n";
if( err > '' )
alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
else
return '';
}
function verificapi()
{
codp = document.form1.partitaiva.value;
if( codp == '' )
return '';
else if( codp.length == 11 )
err = ControllaPIVA(codp);
else
err = "Il codice introdotto non � valido:\n\n" +
" - la partita iva deve essere di 11 numeri;\n\n" +
" - conttare il cliente per controllo.\n";
if( err > '' )
alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
else
return '';
}
// -->
</script>
<body>
<tr>
<td width="82%" style="height: 170px">
Inserisci o il codice fiscale o la partita iva
</td>
</tr>
<form method="post" action="controlloexe.asp" name="form1">
<table width="533" border="0" style="height: 123px">
<tr>
<td width="166" height="19" bgcolor="#849AB5">Codice fiscale</td>
<input name="codicefiscale" onblur="verificacf()" size="25" style="width: 281px">
</tr>
<tr>
<td width="166" height="19" bgcolor="#849AB5">Partita iva</td>
<input NAME="partitaiva" onblur="verificapi()" size="40">
</tr>
<input type="submit" name="Submit" value="Controllo" ">
</table>
</form>
</BODY>
</HTML>
controlloexe.asp
codice:
<%@Language=VBScript%>
<%Response.Buffer = True%>
<%
Session.TimeOut = 5
%>
<%
Dim partitaiva,codicefiscale
codfisc = Replace(Trim(Request.Form("codicefiscale")), "'", "''")
piva = Replace(Trim(Request.Form("partitaiva")), "'", "''")
If codfisc = "" and piva = "" Then Response.Redirect "controllo.asp"
if piva = "" then
SQL = "Select partitaiva,codicefiscale,id From cli where codicefiscale='"&codfisc&"' "
Set DB = Conn.Execute(SQL)
'Session("id") = RS("id")
While DB.EOF
Response.Redirect "nuovocli.asp?cdf="&codfisc&""
DB.MoveNext
Wend
if codfisc = DB("codicefiscale") then
id=db("id")
Response.Redirect "cli.asp?id="&id&""
Else
End If
else
SQL = "Select partitaiva,codicefiscale,id From cli where partitaiva='"&piva&"' "
Set DB = Conn.Execute(SQL)
'Session("id") = DB("id")
While DB.EOF
Response.Redirect "nuovocli.asp?pi="&piva&""
DB.MoveNext
Wend
if pi= DB("partitaiva") then
id=db("id")
Response.Redirect "cli.asp?id="&id&""
Else
End If
end if
CleanUp(DB)
%>