Ir para conteúdo

POWERED BY:

Arquivado

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

Hímaro

[Resolvido] Verificando usuário e depois desabilitando campos

Recommended Posts

Eu estou tentando fazer com que este código abaixo funcione perfeitamente, mas ele SEMPRE está trazendo a seguinte informação "Esse usuario ja esta cadastrado", mas na verdade não está. Ele também não está DESABILITANDO os campos quando o mesmo está cadastrado.

 

Página: Cadastro_Usuario_Ajax.asp

 

<script>
<!--

function envia(url, metodo, modo){
	var login = document.getElementById('form1').login.value;
	remoto  = new ajax();
	xmlhttp = remoto.enviar(url + "?login=" + login, metodo, modo );
	//alert(xmlhttp);
	if(xmlhttp) {
		document.getElementById('login').className = 'erro';
		document.getElementById('alerta').className = 'alerta2';
		document.getElementById("alerta").innerHTML = 'Esse usuario ja esta cadastrado';
		document.getElementById("botao").disble=false;
	} else {
		document.getElementById('login').className = 'texto';
		document.getElementById('alerta').className = '';
		document.getElementById("alerta").innerHTML = '';
		document.getElementById("botao").disble=true;
	}
}
//-->
</SCRIPT>
<script type="text/javascript" src="Ajax.js"></script>
</HEAD>
<BODY>

<table width="400" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" class="Texto_10"><fieldset>
      <legend>Usuario</legend>
      <form id="form1" name="form1" method="post" action="login.php">
        <div id="alerta"></div>
        <label>Login</label>
        <br />
        <input name="login" id="login" type="text" maxlength="30" class="texto" onblur="javascript: envia('Verifica_Usuario.asp', 'POST', false);" />
        <br />
        <labeL>Senha</labeL>
        <br />
        <input name="senha" id="senha" type="password" maxlength="30" class="texto" />
        <br />
        <input name="botao" type="submit" value="Enviar" />
      </form>
      </fieldset></td>
  </tr>
</table>

Página: Verifica_Usuario.asp

<%
Login 	= Trim(Request("login"))
Call Abre_Conexao 'Abre a conexão com o BD Qualidade
'Cria o recordset para validar o usuário
Set SQL = Server.CreateObject("ADODB.RecordSet")
	SQL.ActiveConnection = Conx
	SQL.CursorType = 3
	SQL = "SELECT RD_Local.LoginRD FROM RD_Local WHERE (LoginRD = '"&Login&"')"
	'Response.Write SQL
	'Response.End()
Set rs = Conx.Execute(SQL)

IF Not rs.EOF Or Not rs.BOF THEN
	Response.Write("Usuário Indisponível")
Else
	Response.Write("Usuário Disponível")
End If

Call FechaRS(rs)
Call Fecha_Conexao
%>

Página: Ajax.js

function ajax() {
};
ajax.prototype.iniciar = function() {

	try{
		this.xmlhttp = new XMLHttpRequest();
	}catch(ee){
		try{
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(E){
				this.xmlhttp = false;
			}
		}
	}
	return true;
}

ajax.prototype.ocupado = function() {
	estadoAtual = this.xmlhttp.readyState;
	return (estadoAtual && (estadoAtual < 4));
}

ajax.prototype.processa = function() {
	if (this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200) {
		return true;
	}
}

ajax.prototype.enviar = function(url, metodo, modo) {
	if (!this.xmlhttp) {
		this.iniciar();
	}
	if (!this.ocupado()) {
		if(metodo == "GET") {
			this.xmlhttp.open("GET", url, modo);
			this.xmlhttp.send(null);
		} else {		
			this.xmlhttp.open("POST", url, modo);
			this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			this.xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			this.xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
			this.xmlhttp.setRequestHeader("Pragma", "no-cache");
			this.xmlhttp.send(url);
		}	

		if (this.processa) {
			return unescape(this.xmlhttp.responseText.replace(/\+/g," "));
		}
	}
	return false;
}

Fiz um alert(xmlhttp); e o mesmo retornar o SQL correto SELECT RD_Local.LoginRD FROM RD_Local WHERE (LoginRD = 'paulo') , mas não traz nada na página, a não ser a mesma resposta.

 

o que será que está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse teste lógico está errado:

if(xmlhttp) {
Se você está retornando:

IF Not rs.EOF Or Not rs.BOF THEN
        Response.Write("Usuário Indisponível")
Else
        Response.Write("Usuário Disponível")
End If
precisa testar isso...

if( xmlhttp=='Usuário Indisponível' ) {
e aqui:
document.getElementById("botao").disabled=false;
disble não existe.

 

Olhando rapidamente, achei essas coisas para serem arrumadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado William!

Fiz as devidas alterações e o código ficou assim:

 

IF Not rs.EOF Or Not rs.BOF THEN
	Response.Write("False")
Else
	Response.Write("True")
End If

 

function envia(url, metodo, modo){
	var login = document.getElementById('form1').login.value;
	remoto  = new ajax();
	xmlhttp = remoto.enviar(url + "?login=" + login, metodo, modo );
	//alert(xmlhttp);
	if(xmlhttp=='False') {
		document.getElementById('login').className = 'erro';
		document.getElementById('alerta').className = 'alerta2';
		document.getElementById("alerta").innerHTML = 'Esse usuario ja esta cadastrado';
		document.getElementById("senha").disabled = true;
		document.getElementById("botao").disabled = true;
	} else {
		document.getElementById('login').className = 'texto';
		document.getElementById('alerta').className = 'alerta2';
		document.getElementById("alerta").innerHTML = 'Usuário disponível para cadastro';
		document.getElementById("senha").disabled = false;
		document.getElementById("botao").disabled = false;
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

E está funcionando agora? ou apresenta algum outro erro ?

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.