Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mateus P.

Como validar campo Cpf e telefone do formulário para ser números e max

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)

<form>
	<input type="text" id="patrimonio" name="patrimonio" placeholder="Patrimônio">
    <button type="submit" id="botaoSalvar">Salvar</button>
</form>

<script>
	$("input#patrimonio").focusout(function() {
		var valor = $(this).val();
		$.ajax({
				method: "POST",
				url: "_ajax.php",
				data: { acao: "patrimonio", patrimonio: valor }
			}).done(function( retorno ) { 
				if (retorno == 0) {
					$("input#patrimonio").removeClass("alert-danger");
					$("button#botaoSalvar").attr("disabled",false);
				} else {
					$("input#patrimonio").addClass("alert-danger");
					$("button#botaoSalvar").attr("disabled",true);
				}
		});
	});
</script>

arquivo _ajax.php

<?php
	require("conexao.php");
	
	$acao = $_POST["acao"];
	
	if ($acao == "patrimonio") {
		$patrimonio = $_POST["patrimonio"];
		
		$rs = $pdo->query("SELECT count(*) as TOTAL FROM $tb_equipamento WHERE PATRIMONIO='$patrimonio'");
		
		foreach ($rs as $row) {
			
			echo $row["TOTAL"];
		}
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos , para não cadastrarem iguais pus uma chave unique para CPF lá no banco que possui valor único.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.