Ir para conteúdo
Fórum Script Brasil
  • 0

Validar Placa de Veiculo


Nill

Pergunta

E o seguinte, queria validar a placa de veiculo digitada pelo usuário, so presciso verificar se tem as 3 letras inicias e 4 numeros, somente isso ex.: gxn1367.

achei esse codigo mas não da dando certo.

//validar a placa do veiculo
  function valida(plaka)
  {
   var nums = "0123456789";
   var lets = "ABCDEFGHIJKLMNOPQRSTUVXWYZ";
   var valor;
   var valor2;
   
   if (placa.value.length <= 3)
   {
    for (var i=0;i<plaka.value.length;i++)
    {
     valor=plaka.value.substring(i,i+1)
     if (nums.indexOf(valor) == -1)
     {
      plaka.value = plaka.value.substring(0,i);
      return false;
      break;
     }
    }
   }
   
   else if (placa.value.length > 3)
   {
    for (var i=3;i<plaka.value.length;i++)
    {
     valor2=plaka.value.substring(i,i+1)
     if (lets.indexOf(valor2) == -1)
     {
      plaka.value = plaka.value.substring(0,i);
      return false;
      break;
     }
    }
   }
  }
o codigo da pagina toda segue abaixo.
<?php
// Registra as funções no javascript
$xajax->registerFunction("enviarDados");
$xajax->registerFunction("cadVeiculo");

function enviarDados($formData){
        
    // Instancia o objeto XAJAX objResponse
    $resposta = new xajaxResponse();

    // Cria uma variável para cada campo
    // com o nome do ID do campo, ex.: $nome, $email
    foreach($formData as $chave => $valor)
    {
      $$chave = $valor; 
    }

    //Oculta a imagem ao lado dos imputs
    $resposta->script
    ("
      $(\"img[@name=imagem_erro]\").css(\"visibility\", \"hidden\");
    ");

    // Inicializa a variável de resultado
    $msg = "";
    
    // Verifica os campos e atribui strings a $msg
    if($nmveiculo == false)
    {          
      $msg .= utf8_encode("  <img src='../img/icones/warning.gif'> <label class='letra_erro'><b>Preencha o campo Veículo.</b><label>");
      
        //exibindo a imagem de erro ao lado do input
      $resposta->script
     ("
        $(\"#imagem_erro_nmveiculo\").css(\"visibility\", \"visible\");
     ");
    }
    elseif($placa == false || valida($placa))
    {
      $msg .= "  <img src='../img/icones/warning.gif'> <label class='letra_erro'><b>Digite uma Placa válida!</b><label>";
    
      //exibindo a imagem de erro ao lado do input
      $resposta->script
      ("
        $(\"#imagem_erro_placa\").css(\"visibility\", \"visible\");
      ");    
    }
    else
    { 
        $resposta->script("xajax_cadVeiculo(\"$nmveiculo\", \"$placa\");");
    }
    
    // Atribui a variável $msg ao label resultado
    $resposta->assign('resultado', 'innerHTML', $msg);
    
    // Retorna a resposta de XML gerada pelo
    // objeto do xajaxResponse
    return $resposta;    
}

//validar a placa do veiculo
  function valida(plaka)
  {
   var nums = "0123456789";
   var lets = "ABCDEFGHIJKLMNOPQRSTUVXWYZ";
   var valor;
   var valor2;
   
   if (placa.value.length <= 3)
   {
    for (var i=0;i<plaka.value.length;i++)
    {
     valor=plaka.value.substring(i,i+1)
     if (nums.indexOf(valor) == -1)
     {
      plaka.value = plaka.value.substring(0,i);
      return false;
      break;
     }
    }
   }
   
   else if (placa.value.length > 3)
   {
    for (var i=3;i<plaka.value.length;i++)
    {
     valor2=plaka.value.substring(i,i+1)
     if (lets.indexOf(valor2) == -1)
     {
      plaka.value = plaka.value.substring(0,i);
      return false;
      break;
     }
    }
   }
  }


//Inserção dos dados no banco
function cadVeiculo($nmveiculo, $placa)
{
  // Instancia o objeto XAJAX objResponse    
  $resposta = new xajaxResponse();
  
  // Verifica se o cliente já¡ esta cadastrado
  $cad = @mysql_query("SELECT placa FROM tbaveiculo WHERE placa = '$placa'");

  $qtdlinha = @mysql_num_rows($cad);
    
  if ($qtdlinha != 0)
  {
     $msg .= utf8_encode(" <label class='letra_erro'><b>Este Veículo já estar cadastrado.</b><label>");
  }
  else
  {               
     //pegando a data atual no formato timestamp
     $timestamp = mktime(date("H")-3, date("i"), date("s"), date("m"), date("d"), date("Y"));
     $tsinsert =  gmdate("Y-m-d H:i:s", $timestamp);
       
     //inserindo os dados no banco
     $sql = "INSERT INTO tbaveiculo (cdveiculo, nmveiculo, placa, tsinserte) 
     VALUES (NULL, '$nmveiculo', '$placa', '$tsinsert');";
     
     @mysql_query($sql) or die ($msg .= "Erro ao inserir dados no banco!");
  }
  
      // Verifica $msg
    if(empty($msg))
            $msg = "  <img src='../img/icones/ok.gif'> <label class='letra_ok'><b>Cadastro efetuado com sucesso</b><label>";
    else
            $msg = "  <img src='../img/icones/warning.gif'> <label class='letra_erro'><b>".$msg."</b><label>";
    
    //limpa o formulario 
    $resposta->script("$(\"#id_form\")[0].reset();");
    
    // Atribui a variável $msg ao label resultado
    $resposta->assign('resultado', 'innerHTML', $msg);
    
    // Retorna a resposta de XML gerada pelo
    // objeto do xajaxResponse
    return $resposta;
}  
?>

Se der para me ajudar no que estou fazendo de errado ai... vlw

Editado por Nill
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tenta fazer algo como isto:

function Valida(codigo) {
valor = true

for (i=0;i<=6;i++) {
if (i<=2) {
//Primeiros três dígitos
if (!isNaN(codigo.charAt(i)) {
// O valor não é uma letra
valor = false;
break;
}
}else{
// Algarismos Restantes
if (isNaN(codigo.charAt(i)) {
// O valor não é um número
valor = false;
break;
}
}
}
}

Espero ter ajudado !

Link para o comentário
Compartilhar em outros sites

  • 0

E melhor fazer com JQuery, e melhor de visualizar e fazer manutenção.

jQuery(function($){

$("#placa").mask("AAA-9999");

});

Segue outros exemplo de formatação de campo, vale a pena aprender.

http://jquery.blog.dada.net/post/350761/M%...formul%C3%A1rio

Qualquer duvida, posta ai.

Até mais

InfoCidreira

Link para o comentário
Compartilhar em outros sites

  • 0
O código que o InfoCidreira postou não serve para validar placas de carro, apenas converte o texto !

Para validar a placa, utilize o código que postei lá em cima !

Como assim não serve???? Ele formata e valida se e numero ou letra.

Os que estão AAA: só consegui inserir letras

Os que estão com 9999: somente numeros.

Mas o importante e ajudar, vamos perguntar um para o outro e não sair dizendo que não serve. Ok?

valeu e até mais.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...