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

Verificar Se Já Existe Registro No Bd


ViniciusJau

Pergunta

Moçada, estou quebrando a cabeça aqui com um formulário...

Quando usuario tenta cadastrar no banco um nome que já existe, eu verifico através de php

e quando ele clica no botão voltar o formulário perde todo o restante do conteudo que ele havia preenchido..

Pensei em usar ajax para fazer isso porém não sei se é possivel...

será que você podem me dar um help aí...

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

certo.. eu fiz isso aqui:

<script type="text/javascript">

var xmlHttp;

function createXMLHttpRequest() {

if (window.ActiveXObject) {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

else if (window.XMLHttpRequest) {

xmlHttp = new XMLHttpRequest();

}

}

function startRequest() {

createXMLHttpRequest();

xmlHttp.onreadystatechange = handleStateChange;

//xmlHttp.open("get", "teste2.php", true);

xmlHttp.open("get", "teste2.php?login=" + document.getElementById('login').value, true);

// xmlHttp.send("login=" + document.getElementById("login") + "&endereco=" + document.getElementById("endereco"));

xmlHttp.send(null);

}

function handleStateChange() {

if(xmlHttp.readyState == 4) {

if(xmlHttp.status == 200) {

document.getElementById("resultado").innerHTML = xmlHttp.responseText;

}

}

}

</script>

<form action="#" name="formulario">

<input type="text" name="login" id="login" class="form"><a href="#" onclick="startRequest();">Verificar disponibilidade</a>

</form>

<div id="resultado"></div>

e na pagina teste2.php

<?php

include "conexao.php";

$login = $_REQUEST['login'];

if ( $login <> ""){

//Codigo para verificar se existe o login cadastrado

$sql = mysql_query("SELECT id FROM tabela WHERE nome='$login'");

$contar = mysql_num_rows($sql);

if($contar > 0) { $erro = "2"; } else { $erro = "3";}

} else {

$erro = "1";

}

if ($erro == "1") { $msg="Login não informado"; }

if ($erro == "2") { $msg="Login já cadastrado"; }

if ($erro == "3") { $msg="Login Disponivel"; }

echo $msg;

?>

tá funcionando legal.. o problema é que necessário o usúario clicar no botão "verificar disponibilidade" queria fazer que conforme ele fosse digitando já aparecece a resposta...

Link para o comentário
Compartilhar em outros sites

  • 0

Clicar em algo talvez não seja mesmo a melhor alternativa. você pode usar outro evento, como "onblur" do campo "login".

Quanto a ir pesquisando enquanto o usuário digita, se está imaginando fazer isto no próprio campo "login", pense no seguinte:

1. quanto tempo leva para a pesquisa ser executada?

2. qual o intervalo de tempo entre a digitação de dois caracteres pelo usuário?

3. será viável consumir o servidor a cada caractere alterado no campo, ou será melhor ocupar o servidor apenas quando o usuário estiver certo do que quer?

;)

Link para o comentário
Compartilhar em outros sites

  • 0

já tentei eu utilizo o ajax+php para verificar c existe já o nome de usuario ou c existe o e-mail e dps utilizo a validação do DreamWeaver CS3 (ajax também --> Spry) para não dexar postar nulo os outros campos e etc.Mais c o nome ou e-mail existem (aparece a msg do exemplo do ViniciusJau) eles são submetdos do mesmo jeito contedo no banco 2 campos =

:blink: :blink: :blink:

tentei só com o ajax,sem a validação de preenchimento dos outros campos e não deu

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

  • 0

Desculpa... não tinha percebido que haviam outros posts nesse tópico (meus, inclusive...) :ph34r:

Camarada, alguma coisa está errada na lógica de sua função, que não está submetendo o formulário apenas quando todas as condições necessárias forem satisfeitas.

Se puder, posta o código javascript aí...

Link para o comentário
Compartilhar em outros sites

  • 0

faço a verificaçao com o spry para os campos não ficarem vazios ou com valor invalido e com o ajax anterior faço a verificaçao c já existe ou o mesmo nome ou o mesmo e-mail.

Verifica.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Verifica usuario</title>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script type="text/javascript">
var xmlHttp;

function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}

function startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
//xmlHttp.open("get", "teste2.php", true);
xmlHttp.open("get", "teste.php?login=" + document.getElementById('login').value, true);
//xmlHttp.send("login=" + document.getElementById("login") + "&endereco=" + document.getElementById("endereco"));
xmlHttp.send(null);
}

function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
document.getElementById("resultado").innerHTML = xmlHttp.responseText;
}
}
}
function startRequest2() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange2;
//xmlHttp.open("get", "teste.php", true);
xmlHttp.open("get", "teste.php?email=" + document.getElementById('email').value, true);
//xmlHttp.send("email=" + document.getElementById("email") + "&endereco=" + document.getElementById("endereco"));
xmlHttp.send(null);
}

function handleStateChange2() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
document.getElementById("resultado2").innerHTML = xmlHttp.responseText;
}
}
}
</script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="resultado" style="position:absolute; left: 170px; top: 17px;"></div>
<div id="resultado2"  style="position:absolute; left: 170px; top: 58px;"></div>
<form action="teste3.php" name="formulario" method="post">
  <p><span id="sprytextfield1">
  <input name="login" type="text" class="form" id="login" onblur="startRequest()" onkeypress="if(this.value.length > 5){startRequest()}" onkeydown="if(this.value.length > 5){startRequest()}" onkeyup="if(this.value.length > 5){startRequest();}" maxlength="15" />
  <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldMinCharsMsg">Minimum number of characters not met.</span><span class="textfieldMaxCharsMsg">Exceeded maximum number of characters.</span></span></p>
  <p><span id="sprytextfield2">
  <input type="text" name="email" id="email"  onkeydown="if(this.value.length > 10){startRequest2()}" onkeypress="if(this.value.length > 10){startRequest2();}" onkeyup="if(this.value.length > 10){startRequest2();}" onblur="startRequest2()"/>
  <span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span><span class="textfieldMinCharsMsg">Minimum number of characters not met.</span><span class="textfieldMaxCharsMsg">Exceeded maximum number of characters.</span></span></p>
  <p>
    <input type="submit" name="btnenvia" id="btnenvia" value="Enviar" />
  </p>
</form>

<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:15, hint:"Nome de usuario", validateOn:["blur"]});
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email", {hint:"E-mail", minChars:5, maxChars:50, validateOn:["blur"]});
//-->
</script>
</body>
</html>
e o teste.php responsavel pela verificação c já existe
<?php require_once('Connections/conexao.php'); ?>
<?php
if($_REQUEST['login'] != ''){
$login = $_REQUEST['login'];
if($login <> ""){

mysql_select_db($database_conexao, $conexao);
$sql = "SELECT Id FROM usuarios WHERE Usuario = '$login'";
$sql_exe = mysql_query($sql, $conexao) or die(mysql_error());
$linha_sql = mysql_fetch_assoc($sql_exe);
$contar = mysql_num_rows($sql_exe);
//Codigo para verificar se existe o login cadastrado
if($contar > 0) {
$erro = "2";
}
else
{
$erro = "3";
}
}
else
{
$erro = "1";
}
if ($erro == "1") { 
$msg="<font color='#0000FF'>Nome de usuario não informado</font>";
}
if($erro == "2") {
$msg="<font color='#FF0000'>Nome de usuario já cadastrado<br />
Se voçê já é usuario do site,clique aqui para efetuar <a href='login.php?a=login'>login</a> ou <a href='login.php?a=rs'>recuperar a senha</a></font></font>";
}
if($erro == "3") {
$msg="<font color='#00FF00'>Nome de usuario disponivel</font>";
}
echo $msg;
}
?>
<?php
if($_REQUEST['email'] != ''){
$email = $_REQUEST['email'];
if($email <> ""){

mysql_select_db($database_conexao, $conexao);
$sql = "SELECT Id FROM usuarios WHERE Email = '$email'";
$sql_exe = mysql_query($sql, $conexao) or die(mysql_error());
$linha_sql = mysql_fetch_assoc($sql_exe);
$contar = mysql_num_rows($sql_exe);
//Codigo para verificar se existe o login cadastrado
if($contar > 0) {
$erro = "2";
}
else
{
$erro = "3";
}
}
else
{
$erro = "1";
}
if ($erro == "1") { 
$msg="<font color='#0000FF'>E-mail não informado</font>";
}
if($erro == "2") {
$msg="<font color='#FF0000'>E-mail já cadastrado<br />
Se voçê já é usuario do site,clique aqui para efetuar <a href='login.php?a=login'>login</a> ou <a href='login.php?a=rs'>recuperar a senha</a></font>";
}
if($erro == "3") {
$msg="<font color='#00FF00'>Email unico</font><br />
<br />
";
}
echo $msg;
}
?>

o formulario da pagina verifica.php não é enviado caso o spry aponte algum campo errado, + caso já exista um nome ou e-mail no banco a mensagem aparece mais ele é submetido

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,4k
×
×
  • Criar Novo...