Ir para conteúdo

Arquivado

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

Fabyo

Valida Cadastro (AJAX)

Recommended Posts

Ola Fabyo!estou com uma duvida a pagina cadastro.html não está funcionando corretamente, na barra de status aparece a seguinte mensagem concluido mas contém erro, e quando digito um nome no campo login não acontece nada, quando clico no campo senha na barra de status aparece uma mensagem contem erro na pagina.Na pagina recebe.php fiz o select, mas não ta funcionando poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que no forum ele separa a palavra javascript ficando java script, dai por isso que nao funciona corrija no seu script:

 

cadastro.html:

 

onblur="java script: envia('receber.php', 'POST', false);"

 

e aproveitando faça uma modificação:

 

receber.php:

<?php
echo $_REQUEST["login"] == "Fulano" ? true : false;
?>

 

funcoes.js:

 

antes:

 

if(xmlhttp) {

 

depois:

 

if(xmlhttp == false) {

 

qualquer duvida só postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso esta certo?

 

<div id="alerta"></div><table width="20" bgcolor="#FBFBFB" align="center"> <tr>			<td nowrap="nowrap"colspan="3"></td>		  <tr>			<td bgcolor="<?=$fundo_usuario?>" nowrap="nowrap" width="150">User ID:  </td>			<td bgcolor="<?=$fundo_usuario?>" colspan="2"><input name="login" type="text" id="login" maxlength="12" onblur="java script:envia('receber.php', 'POST', false);"> * </td>		  </tr>
OBS: no cófigo está escrito java script:envia('receber.php' tudo junto

 

Pq não está retornando nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

parabéns!^^e para comparar dois campos .. tipow senha1 e senha2^^e se tiver diferente ..... a o estilo de CSS mudar da caixa de texto ...??tem como ?tipow assim: se as senhas tiverem diferentes... o fundo da caixa de texto fica vermelho.... ^^ se iguais ficam verdes...se alguem souber ajuda ae^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que nao esta certo, mas vamos la.

 

o que eu quis fazer:

 

digitar o nome e verificar no banco de dados se estiver mostrar o alerta e o botao continuar

disable, se estiver tudo ok habilitar o botao e deixar gravar

 

erros:

 

1º mesmo o banco de dados estando vazio ele sempre fala que existe o nome mesmo nao

digitando nada.

 

2º se nao arrumar o 1º nao tem como saber o segundo

 

valeu ai

 

fabyo parabens pelo seu tuto

 

funcao.js

function envia(url, metodo, modo){	var login = document.getElementById('form1').login.value;	remoto  = new ajax();	xmlhttp = remoto.enviar(url + "?login=" + login, metodo, modo );	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;	}}
receber.php

<?phpinclude_once "class/global.inc.php";include_once "class/db.inc.php";$db = new db();$texto = $_REQUEST["login"];$sql = "SELECT * FROM um_mkt_clientes WHERE cl_email='$texto'";$tr = $db->select($sql);if($tr == 1) {	echo true;} else {	echo false;}	?>
index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1257" /><title>Login</title><style>	<!--html, body {	margin:0;	padding:0;}	fieldset {	width:260px;	margin:0 auto;	padding:30px;}.texto {	width:250px;	border:1px solid gray;}.erro {	width:250px;	border:1px solid red;}.alerta2 {	border:1px solid gray;}--></style><script src="ajax.js" type="text/javascript"></script><script src="funcao.js" type="text/javascript"></script></head><body><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="java script: envia('receber.php', '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" disabled="disabled" />	</form></fieldset></body></html>
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;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

po eu fiz o negocio funcionar certinho ta rodando redondinho ate implementei umas coisas como desabilitar o btn se nao tiver tudo ok.

No Internet Explorer ele funciona legal ja no mozilla firefox ele nao funciona. ele da o seguinte erro:

 

Aviso: Elemento referenciado no escopo global pelo ID/NAME. No lugar, use o padrão W3C document.getElementById().

Compartilhar este post


Link para o post
Compartilhar em outros sites

po eu fiz o negocio funcionar certinho ta rodando redondinho ate implementei umas coisas como desabilitar o btn se nao tiver tudo ok.

No Internet Explorer ele funciona legal ja no mozilla firefox ele nao funciona. ele da o seguinte erro:

 

Aviso: Elemento referenciado no escopo global pelo ID/NAME. No lugar, use o padrão W3C document.getElementById().

voce poderia disponibilizar o script completo aki pra gente dar uma analizada e postar futuras melhorias obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

po eu fiz o negocio funcionar certinho ta rodando redondinho ate implementei umas coisas como desabilitar o btn se nao tiver tudo ok.

No Internet Explorer ele funciona legal ja no mozilla firefox ele nao funciona. ele da o seguinte erro:

 

Aviso: Elemento referenciado no escopo global pelo ID/NAME. No lugar, use o padrão W3C document.getElementById().

voce poderia disponibilizar o script completo aki pra gente dar uma analizada e postar futuras melhorias obrigado.

 

Eu estou com o mesmo problema... só que eu dei uma implementada no código !

 

O erro está apontando para essa linha: PreencheCbUF( frmFicha.txtUFRes );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal! Este tuto está ótimo!Mas encontrei problemas...No meu servidor local está funcionando perfeitamente bem, porém no meu servidor na locaweb não foi nada bom o resultado. O que acontece?Bom, depois de inúmeras tentativas, dei um alert() no xmlhttp no arquivo funcoes.js e retornou todo o código fonte da minha página do formulário. Mto estranho...Alguém sabe o que pode estar ocorrendo?Ps.: O problema ocorre em ambos os navegadores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema de sempre dar que existe.. mesmo quando não existe é porque o xmlhttp do funcoes.js volta em branco..xmlhttp = remoto.enviar(url + "?login=" + login, metodo, modo );alert(xmlhttp); // adicionei esse alert e veio uma pagina em branco if(xmlhttp) { document.getElementById('login').className = 'erro'; document.getElementById('alerta').className = 'alerta2'; document.getElementById("alerta").innerHTML = 'Esse usuario ja esta cadastrado'; } else { document.getElementById('login').className = 'texto'; document.getElementById('alerta').className = ''; document.getElementById("alerta").innerHTML = ''; } alguem sabe porque não retorna nada?ps. mesmo com o script original (sem modificações) dá isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que no forum ele separa a palavra javascript ficando java script, dai por isso que nao funciona corrija no seu script:

 

cadastro.html:

 

onblur="java script: envia('receber.php', 'POST', false);"

 

e aproveitando faça uma modificação:

 

receber.php:

<?php
	echo $_REQUEST["login"] == "Fulano" ? true : false;
?>

funcoes.js:

 

antes:

 

if(xmlhttp) {

 

depois:

 

if(xmlhttp == false) {

qualquer duvida só postar

Continua não funcionando 100%

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou retornando para o formulário um array com informações resultantes da busca realizada.

Há a possibilidade de trocar o alert por outro método que não necessite a intervenção do usuário?

Seguem meus códigos:

 

ajax.js

CODE
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 this.xmlhttp.responseText;

}

}

 

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) {

alert(this.xmlhttp.responseText);

return this.xmlhttp.responseText;

}

}

return false;

}

funcao.js

CODE
function envia(url, metodo, modo, frm, tipo)

{

if (frm == 'frm_ecoleta'){

document.getElementById("msg").value=" Pesquisando ...";

var cnpjcpfcodigo = document.getElementById("cnpj_rem").value;

var tamanho = document.getElementById("cnpj_rem").value.length;

for (x=0; x < tamanho; x++){

cnpjcpfcodigo=cnpjcpfcodigo.replace(/\D/g,"");

}

 

remoto = new ajax();

xmlhttp = remoto.enviar(url + "?cnpjcpfcod=" + cnpjcpfcodigo, metodo, modo );

var res = xmlhttp.split("|");

if (res[0]<>""){

//Preenchendo com os valores da busca

document.getElementById("razao_"+tipo).value = res[0];

document.getElementById("endereco_"+tipo).value = res[1];

document.getElementById("numero_"+tipo).value = res[2];

document.getElementById("bairro_"+tipo).value = res[3];

document.getElementById("cep_"+tipo).value = res[4];

 

} else {

alert('Cliente nao cadastrado');

}

document.getElementById("msg").value=" ";

}

 

}

Grato pela atenção.

 

Fabio R. Kochhann

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com um problema de compatibilidade, no IE funcionou 100% otimo, agora no Firefox eu num consegui funcionar nem, mais nao volta erro nenhum, somente nao valida o campo,

alquem sabe o porque disso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse script é de 30/01/2006, por isso esta ruim desse jeito, mas o login.php você cria do seu jeito, o arquivo recebe.php que esta fazendo a validação inicial, mas poderia ser o login.php

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.