Ir para conteúdo

POWERED BY:

Arquivado

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

webfuture

Como enviar valor de um campo text para uma solicitação

Recommended Posts

Olá galera, cá estou eu novamente com uma dúvida, é a seguinte, estou montando um sistema para um fotolog onde o usuário escolherá um login de acesso e endereço para seu fotolog, porém não pode acontecer de ter dois logins iguais ou dois endereços iguais, e para isto gostaria de ter um botão "verificar disponibilidade" ou "testar login" para informar ao usuário se o login ou endereço esta disponivel sem que ele precise enviar o formulário e precisar voltar caso encontre erros...

 

Pois bem, montei uma página simples de um formulário com um link em texto que chama uma função que envia a solictação para a pagina de login.asp onde deveria verificar se o login já existe ou não, porém não estou conseguindo passar para a página correspondente o login informado no campo login do formulário, alguém sabe me dizer onde estou errando ? Deve ser coisa muito simples mas como estou começando a mexer com AJAX agora estou me perdendo...

 

Vejam o código:

 

formulario.asp

 

<!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>	<title>Untitled Page</title><!--#INCLUDE FILE="ESTILO_LINKS.ASP"--><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", "login.asp", true);//	xmlHttp.open("get", "login.asp?login=" + document.formulario.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></head><body><form action="#" name="formulario"><input type="hidden" name="login" value="">	<table align="center" cellspacing="0" cellpadding="0" border="1" bordercolor="#000000">		<tr>			<td align="center" height="30" bgcolor="#f0f0f0" class="formato2"> Formulário de Cadastro de Usuários</td>		</tr>		<tr>			<td>				<table>					<tr>						  <td class="formato2" align="right">Endereço:</td>						  <td class="formato2"><input value="http://" type="text" id="endereco" size="48" name="endereco" class="form"></td>					</tr>					<tr>						  <td class="formato2" align="right">Login:</td>						  <td class="formato2"><input type="text" name="login" id="login" class="form"> <a href="#" onclick="startRequest();">Verificar disponibilidade</a></td>					</tr>					<tr>						  <td class="formato2" align="right">Senha:</td>						  <td><input type="password" name="password" class="form"></td>					</tr>					<tr>						 <td colspan="2" align="right"><input type="submit" value="Cadastrar" class="form"></td>					</tr>				</table>			</td>		</tr>	</table></form>  <div id="resultado"></div></body></html>
Na página acima tentei enviar o login de várias formas com o método getElementById mas não rolou, vai ver estou errando em coisa simples e não estou vendo...

 

login.asp

 

<!--#INCLUDE FILE="ABRE_CONEXAO.ASP"--><%	login = request("login")	senha = request("senha")	if login <> "" and senha <> "" then	Set RsVerificaLogin = Server.CreateObject("AdoDB.Recordset")	SQL = "SELECT login, senha from TB_Usuarios WHERE login =" & login & " and senha = "& senha &" "	RsVerificaLogin.open SQL, conexaoSQL	if not(RsVerificaLogin.eof) then		erro = "2"	else		erro = "3"	end if	RsVerificaLogin.Close	Set RsVerificaLogin = Nothing	else		erro = "1"	End If	Select Case erro		Case "1"		mensagem = "Login ou senha não informados"		CAse "2"		mensagem = "Login indisponível"		Case "3"		mensagem = "Login disponível"		Case Else	End Select%><TABLE>	<TR>		<TD CLASS="FORMATO2"><%Response.Write mensagem%></TD>	</TR></TABLE>
Outra coisa que notei também é que se alguma informação da página solicitada têm acentos não os retornta também, vem quebrado, talvez tenha alguma função que trate isto...

 

Se alguém souber me indicar onde estou errando

 

WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, me surgiu uma dúvida, por exemplo neste formulário que estou montando apareceu um segundo campo onde seria necessário consultar a disponibilidade dele no banco de dados antes de prosseguir com o cadastro, sendo assim, o mais correto a ser feito seria duplicas as funções ou tem alguma outra forma de validar, tipo se vir de um link manda para esta url com este valor caso contrario manda para esta url com este valor ?WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei duplicar as funções somente mudando o nome para não duplicar deu erro em tempo de execução...Alguém sabe alguma forma de fazer isto ?Por exemplo, no formulário terei 3 campos para serem analisados:login - ja esta ok funcionando (se o usuario clica em verificar rola normalmente)endereco - é o mesmo caso acima porém não rolanascimento - no onblur preciso verificar se a partir data de nascimento do usuario a idade é validaNo primeiro caso acima recupero as informações normalmente, porém nos dois seguinte já não, tentei duplicar as funções mas não rolou, não conhecer tanto é ruim por causa disto.. só as gambis...rs, sei que provavelmente da para fazer algo com IF, bom, vou testando...WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá TmFerreira, entendi sim, já esta funfando direitinho, é bem mais simples do que imaginei, agora só me surgiu uma última dúvida, para cada campo analisado terei uma DIV em um lugar diferente para exibição da mensagem retornada, no script atual ele mostra todas as mensagens em uma div, gostaria que de acordo com a verificacao ele mostrasse na div correta...Terei de passar alguma informacao e na hora de recuperar fazer um if também?WebFuture

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.