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

Validar Diretamente Em Banco De Dados


diogoleter

Pergunta

Olá!

Tenho um formulário comum que tem como validação codições JavaScript, esse formulário é exatamente para cadastro de usuários. Como alerta é usado a função "alert" que ao condição ser verdadeira aparece, por exemplo, se o campo estiver em branco ele alerta ao usuário com uma janela de alerta. Só que que gostaria de utilizar esse alert para informar o usuário que o nome usuário já existe, isso caso existe cadastrado no banco de dados. Ou seja, gostaria que ao clicar no botão de validação no caso o "submit" o javascript com PHP efetuasse uma busca no banco MySQL verificando se já existe.

Se alguém puder me ajudar com tal solução ficarei muito grato!

Obrigado!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

tem que ser com ajax.... você já usou ajax? Olha... eu tenho um código de ajax pronto que pode te ajudar... você vai fazer +/- assim:

você vai pegar essa código e vai criar um arquivo chamado 'ajax.js'

function ajax(url,div) { 
req = null; 
if (window.XMLHttpRequest) { 
 req = new XMLHttpRequest(); 
 req.onreadystatechange = processReqChange; 
 req.open("GET",url,true); 
 req.send(null); 
 }else if (window.ActiveXObject) { 
    req = new ActiveXObject("Microsoft.XMLHTTP"); 
    if (req) { 
    req.onreadystatechange = processReqChange; 
    req.open("GET",url,true); 
    req.send(null); 
    } 
  } 
} 

function processReqChange(){ 
if (req.readyState == 4){ 
  if (req.status ==200){
  document.getElementById(div).innerHTML = req.responseText; 
  }else{ 
  alert("Houve um problema ao obter os dados:n" + req.statusText); 
  } 
 } 
}
Bem, não sei te explicar bem o codigo, mas sei que ele funciona! (heheheheheheh) Esse codigo tem uma função principal chamada de ajax(), que passa dois parametros: url e div. No página que você vai fazer a validação você vai chamar a função que valida o campo e esta irá chamar a função ajax:
<script language="javascript" src="ajax.js"></script>
<script language="javascript">
 function verificaDuplicidade(valor){ 
  url = "pesquisaUsuario.php?nome="+valor; // arquivo que pesquisa se o usuario existe
  div = "pesquisaUsuario"; // div com o id "pesquisaUsuario". você pode colocar qualquer nome

  ajax(url,div);
 }
</script>
Bom, na página tem que ter uma div com o id passado pela funcao, que é onde vai ser carregado o conteudo da página pelo ajax:
<div id="pesquisaUsuario"></div>
Bem tá quase... na página php que vai pesquisar o usuario, você tem que atribuir a pesquisa o parametro $_GET["nome"], que é a query_string passado pela var url da função JS. Tem que estár atento á uma coisa: você está chamando a página como se fosse uma url, então se você trabalha com o arquivo de conexao ao banco com include ou require, você vai ter que incluir de novo nessa página... alias tudo que você precisar você vai incluir de novo; funcoes, banco, css ... sei lá... Um exemplo de como seria a página:
<?php
mysql_connect("localhost","usuario","senha"); // supondo que seja mysql
mysql_select_db("banco");

if($_GET["nome"] != ""){
 $consulta = mysql_query("SELECT * FROM tabela WHERE campo_nome = '".$_GET["nome"]."'");
 if(mysql_num_rows($consulta) > 0) echo "Já existe um usuario com esse nome";
}
?>
-------- editando (vou por o codigo todo pra ficar mais claro) ---------------------- ajax.js
function ajax(url,div) { 
req = null; 
if (window.XMLHttpRequest) { 
 req = new XMLHttpRequest(); 
 req.onreadystatechange = processReqChange; 
 req.open("GET",url,true); 
 req.send(null); 
 }else if (window.ActiveXObject) { 
    req = new ActiveXObject("Microsoft.XMLHTTP"); 
    if (req) { 
    req.onreadystatechange = processReqChange; 
    req.open("GET",url,true); 
    req.send(null); 
    } 
  } 
} 

function processReqChange(){ 
if (req.readyState == 4){ 
  if (req.status ==200){
  document.getElementById(div).innerHTML = req.responseText; 
  }else{ 
  alert("Houve um problema ao obter os dados:n" + req.statusText); 
  } 
 } 
}
pesquisaUsuario.php
<?php
mysql_connect("localhost","usuario","senha"); // supondo que seja mysql
mysql_select_db("banco");

if($_GET["nome"] != ""){
 $consulta = mysql_query("SELECT * FROM tabela WHERE campo_nome = '".$_GET["nome"]."'");
 if(mysql_num_rows($consulta) > 0) echo "Já existe um usuario com esse nome";
}
?>
index.php
<script language="javascript" src="ajax.js"></script>
<script language="javascript">
 function verificaDuplicidade(valor){ 
  url = "pesquisaUsuario.php?nome="+valor; // arquivo que pesquisa se o usuario existe
  div = "pesquisaUsuario"; // div com o id "pesquisaUsuario". você pode colocar qualquer nome

  ajax(url,div);
 }
</script>
<div id="pesquisaUsuario"></div>
<br>
<input type=text name=nome id=nome>
<input type=button name=pesquisa onClick="verificaDuplicidade(nome.value)">

Eu acho que é isso aí.... se não funcionar postar aí...

Ah!... eu uso isso para praticamente tudo o que faço com ajax, se você desenrolar isso ai, sua vida vai mudar.... heehee

T+

Editado por searching_
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...