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
controlloexe.aspcodice:<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>
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) %>


