Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um formulário html quero que seja obrigatório preencher o tanto xis de números para telefone e CPF, por exemplo, CPF digitar 14 digitos incluindo com caracteres e ser números válido no caso.
Eu tinha feito uma validação que cadastrava só números mas cadastrava tudo que é número sem ser válido e queria que não repetisse, por exemplo, um que já foi cadastrado.
Você pode usar uma máscara jQuery pra facilitar a coisa com o campo input do CPF. Desse jeito, necessariamente vai entrar só números e já vai colocar no modelo certinho. Uma boa máscara que você pode usar é a que a Fábrica de Micro disponibiliza, pra usar é fácil:
coloca o link pro arquivo da máscara e outro pro arquivo do jQuery, é claro. Se não colocar os dois, não funciona:
<script src="https://www.fabricademicro.com.br/Index/jquery-1.11.2.js" type="text/javascript" language="javascript"></script>
<script src="https://www.fabricademicro.com.br/Index/jQueryMask.js" type="text/javascript" language="javascript"></script>
Pra usar a máscara é bem simples, basta definir o modelo no OnLoad da página e então a pessoa vai ter que inserir os números do CPF seguindo o padrão que você fornecer:
$(document).ready(function(){
$("input[name=cpf]").mask("999.999.999-99");//Inicia o campo como CPF
});
O name do input você define do jeito que quiser, coloca o name do seu input lá. O importante mesmo é a máscara. Colocar os números "999.999.999-99" define que o usuário só vai poder inserir números nesse input. O resto a máscara faz sozinha.
Agora, pra validar se o CPF é verdadeiro, tem uns algorítimos prontos pela net que fazem isso, mas não é muito simples não.
Pra não repetir um CPF que já foi cadastrado, simplesmente faça uma busca no seu banco de dados pelo número de CPF que o visitante inseriu. Se achar algum registro, cancele o script e avise ao usuário que o CPF já foi cadastrado e mande ele colocar outro número. Exemplo:
$cpf = $_POST["cpf"];
$resultado = $mysqli->query("SELECT * FROM tabela WHERE cpf='$cpf'");
if($resultado->num_rows == 0){
// Executa o script normalmente
}else{
// Avisa ao usuário que o CPF já está cadastrado e manda ele escolher outro
}
Espero ter ajudado.
Obrigado a todos , para não cadastrarem iguais pus uma chave unique para CPF lá no banco que possui valor único.
você pode fazer de duas formas.. ou você verifica após fazer o submit no formulário, ou você faz uma verificação via AJAX após sair do campo..
Um exemplo que tenho aqui utilizando ajax (jquery)
arquivo _ajax.php