olá pessoal, tenho várias dúvidas sobre códigos da linguagem, mas mesmo assim atraves consegui fazer um simples formulário de cadastro gravando as informações em um bd access. Mas o prolema se faz quando utilizo um script para checar o compo CPF e validar o mesmo, logo apos ele é submetido a gravação não se faz. Antes vir ate aqui pesquizei em vários fóruns, mas sem questionamentos ou publicar, mas espero que alguém possa me ajudar ou pelo menos indicar onde posso encontrar ajuda.
ps: foram retirados os ///onSubmit="return validaCPF()" // name="validacao" // on cpf value="" return true; tal modo de não ler o js e enviar os dados para o bd normalmente.
<<formulario.asp>>>
<HTML>
<HEAD>
<html>
<style type="text/css">
<!--
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
<head>
<title>Valida CPF</title>
<script language="Javascript">
function validaCPF() {
cpf = document.validacao.CPF.value;
valor = true;
erro = new String;
if (cpf.length < 11) erro += "são necessarios 11 digitos para verificacao do CPF! \n\n";
var nonNumbers = /\D/;
if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n";
if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
erro += "Numero de CPF invalido!"
}
var a = [];
var b = new Number;
var c = 11;
for (i=0; i<11; i++){
a[i] = cpf.charAt(i);
if (i < 9) b += (a[i] * --c);
}
if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
b = 0;
c = 11;
for (y=0; y<10; y++) b += (a[y] * c--);
if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
erro +="Digito verificador com problema!";
}
if (erro.length > 0){
alert(erro);
return false;
}
}
///onSubmit="return validaCPF()"
// name="validacao"
// on cpf value="" return true;
</script>
<TITLE>Inclusão de Cadastro- Examplo</TITLE>
</HEAD>
<BODY>
<H1 class="style1">Cadastro </H1>
<form method="post" action="incluir.asp">
<TABLE width="489" align="center">
<TR><TD><span class="style1">Nome:</span></TD>
<TD><INPUT NAME="Nome" type="text" id="Nome" SIZE=50></TD></TR>
<TR><TD><span class="style1">CPF:</span></TD>
<TD><input name="CPF" type="text" id="CPF" size="50" maxlength="11"></TD></TR>
<TR>
<TD><span class="style1">Email:</span></TD>
<TD><input name="Email" type="text" id="Email" size="50" maxlength="11"></TD></TR>
<TR><TD><span class="style1">Endereço:</span></TD>
<TD><INPUT NAME="Endereco" type="text" id="Endereco" SIZE=50></TD></TR>
<TR><TD><span class="style1">Cidade:</span></TD>
<TD><INPUT NAME="Cidade" type="text" id="Cidade" SIZE=50></TD></TR>
<TR><TD><span class="style1">Estado:</span></TD>
<TD><INPUT NAME="Estado" type="text" id="Estado" SIZE=50></TD></TR>
<TR><TD><span class="style1">Cep:</span></TD>
<TD><INPUT NAME="Cep" type="text" id="Cep" SIZE=50></TD></TR>
<TR><TD><span class="style1">Mensagem:</span></TD>
<TD> <textarea name="Msg" cols="50" rows="8" class="formbutton" id="Msg" input ></textarea></TD></TR>
</TABLE>
<BR><INPUT TYPE="SUBMIT" VALUE="Salvar Registro">
<INPUT TYPE="RESET" VALUE="Limpar Campos">
<BR><BR><A HREF="index.htm">Abandonar edição e retornar a pagina principal</A>
</FORM>
</BODY>
</HTML>
<<incluir.asp>> que recebe os dados e grava no bd access
<HTML>
<HEAD>
<TITLE>Inclusão no Cadastro</TITLE>
</HEAD>
<BODY>
<H1> Incluindo um cadastro em TESTE </H1>
<%
Dim con
Dim rst
Const adOpenKeyset = 1
Const adLockOptimistic = 3
' Cria os objetos
Set con = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
' Abre a conexão com o banco de dados cadastro.mdb
con.Open "DBQ=D:\InetPub\meusite\private\database\cadastro.mdb;DRIVER={Microsoft Access Driver (*.mdb)}"
' Cria um Recordset do tipo keyset baseado na tabela clientes
' usando o bloqueio otimista
rst.Open "SELECT * FROM clientes", con, adOpenKeyset, adLockOptimistic
' Cria um registro em branco
rst.AddNew
' Recebe os dados do formulário e os atribui aos campos da tabela cliente
rst("Nome")= Request.Form("Nome")
rst("Email")= Request.Form("Email")
rst("CPF")= Request.Form("CPF")
rst("Endereco")= Request.Form("Endereco")
rst("Cidade")= Request.Form("Cidade")
rst("Estado")= Request.Form("Estado")
rst("Cep")= Request.Form("Cep")
rst("Msg")= Request.Form("Msg")
' Salva o registro
rst.Update
Response.Write "<B>Registro salvo com sucesso !</B>"
rst.Close
con.Close
%>
<BR><A HREF="obrigado.htm">Retorna a página principal</A>
</BODY>
</HTML>
Pergunta
bylas
olá pessoal, tenho várias dúvidas sobre códigos da linguagem, mas mesmo assim atraves consegui fazer um simples formulário de cadastro gravando as informações em um bd access. Mas o prolema se faz quando utilizo um script para checar o compo CPF e validar o mesmo, logo apos ele é submetido a gravação não se faz. Antes vir ate aqui pesquizei em vários fóruns, mas sem questionamentos ou publicar, mas espero que alguém possa me ajudar ou pelo menos indicar onde posso encontrar ajuda.
ps: foram retirados os ///onSubmit="return validaCPF()" // name="validacao" // on cpf value="" return true; tal modo de não ler o js e enviar os dados para o bd normalmente.
<<formulario.asp>>>
<<incluir.asp>> que recebe os dados e grava no bd accessLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.