Ir para conteúdo

POWERED BY:

Arquivado

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

allanlb

Ativar botão cadastro

Recommended Posts

Boa noite! Tenho uma dúvida, agradeço se me ajudarem:

Tenho uma tela de cadastro e um arquivo que verifica a disponibilidade do login, gostaria de ativar o botão pra cadastrar, apenas se a pessoa verificou a disponibilidade do login. Tentei fazer isso pegando um valor pelo GET, mas como a verificação é feita por ajax, ele não "Vê" o valor vindo pelo get sem dar refresh...

seguem os dois arquivos.

Obs.: Imagino que dê pra mandar o botao por ajax, assim como mando o texto/resultado da verificação. Não sei se isso funciona.

 

Cadastro.php

 


<?php


include ('conexao.php');
//include ('inserir.php');
?>
<link rel="stylesheet" type="text/css" href="estrutura_principal.css">



<form id="form1" name="form1" method="post" enctype="multipart/form-data" onsubmit="return validar()" onsubmit="return testasenha()" action="?pag=cadastro&cadastro=ok">

  <table width="622" border="0"> 
  <tr>
      <td colspan="2" </td>
    </tr>
 
    <tr>
      <td colspan="2" bordercolor="#FFFFFF"><div align="center"></div></td>
   
	<tr>
      <td  class="rotuloformcadastro">Login desejado: </td>
      <td class="rotuloformcadastro">
	  
	  
	  <input name="loginn" type="text" id="loginn" />*      <a href="#?acao=ok" onclick="startRequest();mostra_botao()" class="verificadisponibilidade">Verificar disponibilidade</a><div id="resultado"></div>
	  
	  
      </td>
	</tr>
	<tr>
      <td class="rotuloformcadastro">Senha desejada: </td>
      <td class="rotuloformcadastro"><input name="senhaum" type="password" id="senhaum" />
      *</td>
    </tr>
    <tr>
      <td class="rotuloformcadastro">Repita a senha: </td>
      <td class="rotuloformcadastro"><label>
        <input name="senhadois" type="password" id="senhadois" />
      *</label></td>
    </tr>
	 </tr>
    <tr>
      <td width="178" class="rotuloformcadastro">Nome:</td>
      <td width="434" class="rotuloformcadastro"><label>
        <input name="nome" type="text" id="nome"/>*
      </label> 
          </td>
    </tr>
    <tr>
      <td class="rotuloformcadastro">Sobrenome:</td>
      <td class="rotuloformcadastro"><input name="sobrenome" type="text" id="sobrenome" />*</td>
    </tr>
    <tr>
      <td class="rotuloformcadastro">Sexo:</td>
      <td bordercolor="#FFFFFF"  class="rotuloformcadastro"><label>
        <input name="sexo" type="radio" value="m" />
      <font color="#0099FF">Masculino</font> 
      <input name="sexo" type="radio" value="f"/>
      <font color="#FF00FF">Feminino</font></label>    *</td>
    </tr>
    <tr>
      <td class="rotuloformcadastro">Data de nascimento:</td>
       <td bordercolor="#FFFFFF" class="rotuloformcadastro"><input name="nascimento" type="text" id="nascimento" maxlength="10" onkeypress="Data(event, this)"/>*
    </tr>
    <tr>
      <td  class="rotuloformcadastro">E-Mail:</td>
      <td bordercolor="#FFFFFF" class="rotuloformcadastro"><input name="email" type="text" id="email" />*</td>
    </tr>
	<tr>
      <td  class="rotuloformcadastro">Telefone:</td>
      <td bordercolor="#FFFFFF" class="rotuloformcadastro"><input name="telefone" type="text" id="telefone" />*</td>
    </tr>
	<tr>
      <td  class="rotuloformcadastro">Telefone celular:</td>
      <td bordercolor="#FFFFFF"><input name="telefone1" type="text" id="telefone1" /></td>
    </tr>
	<td  class="rotuloformcadastro">Estado:</td>
      <td bordercolor="#FFFFFF" class="rotuloformcadastro"><input name="estado" type="text" id="estado" />*</td>
    </tr>
	<td  class="rotuloformcadastro">Cidade:</td>
      <td bordercolor="#FFFFFF" class="rotuloformcadastro"><input name="cidade" type="text" id="cidade" />*</td>
    </tr>
	<td  class="rotuloformcadastro">Endereço:</td>
      <td bordercolor="#FFFFFF"class="rotuloformcadastro"><input name="endereco" type="text" id="endereco" size="40" />*</td>
    </tr>
    
	  
	  
	 
    </tr>
    
    <tr>
      <td class="rotuloformcadastro">Foto:</td>
      <td bordercolor="#FFFFFF"><input name="foto" type="file" id="foto" /></td>
    </tr>
    <tr>
      <td colspan="2" bordercolor="#FFFFFF"><label>
        <div align="center">
          <input type="submit" name="botao" value="Cadastrar"/>
          <input type="reset" name="Submit2" value="Limpar Formulário" />
        </div>
      </label>
        <label> 
        <div align="center"></div>
      </label></td>
    </tr>
  </table>

  <label></label><label></label>

</form>



<?php
if ($_GET[cadastro]=='ok'){



include ('uploaddeimagem.php');
	
		$allan=mysql_query("insert into clientes(cod_cliente,login,senha,nome,sobrenome,foto,sexo,nascimento,email,cidade,estado,endereco,telefone,telefone1,senha2) 
	values('{$_POST['codigo']}','{$_POST['loginn']}','{$_POST['senhaum']}','{$_POST['nome']}','{$_POST['sobrenome']}','".imagem($_FILES[foto])."','{$_POST['sexo']}','
		{$_POST['nascimento']}','{$_POST['email']}','{$_POST['cidade']}','{$_POST['estado']}','{$_POST['endereco']}','{$_POST['telefone']}','{$_POST['telefone1']}','{$_POST['senhadois']}')")or die("erro no comando do:".mysql_error());
		if ($allan){
			$res = mysql_query("select * from clientes where login='".$_POST['loginn']."' and senha='".$_POST['senhaum']."'");
			$d = mysql_fetch_array($res);
			$_SESSION[codigo] = $d[cod_cliente];
			$_SESSION[cliente] = $d[nome];
			print '<script> alert("Cadastro Efetuado com sucesso!"); window.location="?pag=minhaconta";</script>';
		}else{
			print '<script> alert("Erro de sistema!"); window.location="?pag=cadastro";</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", "verifica.php", true);
xmlHttp.open("get", "verifica.php?login=" + document.getElementById('loginn').value, true);
// xmlHttp.send("login=" + document.getElementById("loginn") + "&endereco=" + document.getElementById("endereco"));
xmlHttp.send(null);
}

function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
document.getElementById("resultado").innerHTML = xmlHttp.responseText;
}
}
}
</script>


<script>
function validar(){
 		d = document.all;
		erro = true;		
 		if(d.loginn.value == ''){
 			alert("O campo Login é obrigatório, favor preencher.");
			d.loginn.focus();
			erro = false;
		   
		}else if(d.senhaum.value == ''){
 			alert("O campo Senha é obrigatório, favor preencher.");
			d.senhaum.focus();
			erro = false;
			}else if(d.senhadois.value == ''){
 			alert("O campo Repita a senha é obrigatório, favor preencher.");
			d.senhadois.focus();
			erro = false;
		}else if(d.senhaum.value != d.senhadois.value){
			alert("Os campos referentes a senha devem conter valores identicos.");
			d.senhaum.focus();
			erro = false;
			}else if(d.nome.value == ''){
 			alert("Campo Nome em branco, favor preencher.");
			d.nome.focus();
			erro = false;
			
			}else if(d.sobrenome.value == ''){
 			alert("Campo Sobrenome em branco, favor preencher.");
			d.sobrenome.focus();
			erro = false;
				}else if(d.nascimento.value == ''){
 			alert("Campo Data de Nascimento em branco, favor preencher.");
			d.nascimento.focus();
			erro = false;
			}else if(d.email.value == ''){
 			alert("Campo E-mail em branco, favor preencher.");
			d.email.focus();
			erro = false;
			}else if(d.telefone.value == ''){
 			alert("Campo Telefone em branco, favor preencher.");
			d.telefone.focus();
			erro = false;
			}else if(d.telefone1.value == ''){
			alert("Campo Telefone celular em branco, favor preencher.");
			d.telefone1.focus();
			erro = false;
			}else if(d.estado.value == ''){
			
 			alert("Campo Estado em branco, favor preencher.");
			d.estado.focus();
			erro = false;
			}else if(d.cidade.value == ''){
 			alert("Campo Cidade em branco, favor preencher.");
			d.cidade.focus();
			erro = false;
			}else if(d.endereco.value == ''){
 			alert("Campo Endereço em branco, favor preencher.");
			d.endereco.focus();
			erro = false;
			
			
		
		
		}if(erro == false){return false;}
}
</script>


<script language="javascript">
function Data(evento, objeto){
        var keypress=(window.event)?event.keyCode:evento.which;
        nascimento = eval (objeto);
        if (nascimento.value == '00/00/0000')
        {
                nascimento.value=""
        }

        caracteres = '0123456789';
        separacao1 = '/';
        conjunto1 = 2;
        conjunto2 = 5;
        if ((caracteres.search(String.fromCharCode (keypress))!=-1) && nascimento.value.length < (10))
        {
                if (nascimento.value.length == conjunto1 )
                nascimento.value = nascimento.value + separacao1;
                else if (nascimento.value.length == conjunto2)
                nascimento.value = nascimento.value + separacao1;
        }
        else
                event.returnValue = false;
}
</script>



 

 

Verifica.php

 

 

<?php
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header('Content-Type: text/html; charset=iso-8859-1'); 

include "conexao.php";
$login = $_REQUEST['login'];


if ( $login <> ""){
//Codigo para verificar se existe o login cadastrado
$sql = mysql_query("SELECT login FROM clientes WHERE login='$login'");
$contar = mysql_num_rows($sql);
if($contar > 0) { $erro = "2"; } else { $erro = "3";} 

} else { 

$erro = "1";
}

if ($erro == "1") { $msg="<b><font color='blue'>Informe o login!</form></b>"; }
if ($erro == "2") { $msg="<b><font color='red'>Longin indisponível!</form></b>"; }
if ($erro == "3") { $msg="<b><font color='green'>Login disponível!</form></b>"; }

echo $msg; 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, para desabilitar o botão, você vai ter que usar javascript. Faça o seguinte. Inicie com ele desabilitado e, no momento que passar na validação você executa uma função Javascript para habilitar o botão.

 

if ($erro == "3") 
{
   echo '<script>aqui vai a função javascript</script>';
   $msg="<b><font color='green'>Login disponível!</form></b>"; 
}

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

e um arquivo que verifica a disponibilidade do login

 

Como 'muita gente', tava atrás disso, eu montei um exemplo usando AJAX com jQuery.

sql.sql

--
-- Estrutura da tabela `usuario`
--

CREATE TABLE IF NOT EXISTS `usuario` (
 `idUsuario` int(10) NOT NULL AUTO_INCREMENT,
 `nomeUsuario` varchar(200) NOT NULL,
 PRIMARY KEY (`idUsuario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Extraindo dados da tabela `usuario`
--

INSERT INTO `usuario` (`idUsuario`, `nomeUsuario`) VALUES
(1, 'William'),
(2, 'Bruno');
usuario.php
<?php
 //envio o charset para evitar problemas
 header("Content-Type: text/html; charset=ISO-8859-1"); 

 $con = mysql_connect('localhost', 'root', '123');//faço a conexão com o banco
 mysql_select_db('artigos', $con);//seleciono a tabela no banco

 $sql = "
 SELECT * FROM `usuario`
 WHERE `nomeUsuario` = '{$_POST['nomeUsuario']}' ";//monto a query

 $q = mysql_query( $sql );//executo a query

 if( mysql_num_rows( $q ) > 0 )//se retornar algum resultado
 echo 'Já existe!';
 else
 echo 'Não existe ainda!';
?>
index.php
<head>
 <script type="text/javascript" src="jquery-1.3.2.js"></script>
 <script type="text/javascript">
 $(function(){ // declaro o início do jquery
 $("input[name='verificar']").click( function(){//botão para disparar a ação

 var nomeUsuario = $("input[name='nomeUsuario']").val();
 //alert(nomeUsuario);

 $.post('usuario.php',{nomeUsuario: nomeUsuario},function(data){
 $('#resultado').html(data);//onde vou escrever o resultado
 });
 });
 });// fim do jquery
 </script>
</head>
<body>
 <form action="" method="">
 <label>Nome Usuário: <input type="text" name="nomeUsuario" /></label>
 <input type="button" name="verificar" id="verificar" value="verificar" />
 </form>
 <div id="resultado"></div>
http://www.wbruno.com.br/blog/?p=3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, fiz a seguinte alteração:

coloquei :

if ($erro == "3") { $msg="<b><font color='green'>Login disponível!</form></b>"; ?>
<input type='submit' name='botao' value='Cadastrar'/>
<?php }?>

junto da mensagem, ele mostra o botão apenas se o login não existir no banco, até aí tudo bem. O problema é que ele coloca o botão na mesma div da mensagem(parte de cima da tela), queria que o botão aparecesse separado em uma div(na parte debaixo do form).

Se puderem ajudar, agradeço. Javascript não é minha praia.

Flw.

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.