Ir para conteúdo

Arquivado

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

Andre Schmidt_130237

formulario ajax e php

Recommended Posts

ola galera, eu estou com um problema aqui que é o seguinte:

 

eu tenho um formulário que quando eu digito um nome de usuário, e enviada um requisição por ajax para saber se o usuário já existe no banco de dados, retornando uma resposta. O que eu quero fazer e que quando a resposta for positiva, o form seja submetido, e se a resposta for negativa, nada acontece.

 

arquivo de validação

<?php include '../conexao.php'; ?>
<?php

$sql = "SELECT * FROM users";
$query = mysql_query($sql);
$linha = mysql_fetch_array($query);

$campo = $_GET['campo'];
$valor = $_GET['valor'];



// Verificando o campo login
if ($campo == "user") {
	
	if ($valor == "") {
	 echo "";	
	}
	
	elseif($valor == $linha['user']) {
		
	 echo '<img src="images/register/x.png" />';
	 
	}
	 else {
		
     echo '<img src="images/register/v.png" />';
	 } 
	
}

// Verificando o campo email
if ($campo == "email") {
	
	if ($valor == "") {
		 echo "";
	 }
	
	elseif($valor == $linha['email']) {
		
	 echo '<img src="images/register/x.png" />';
	 
	}
	 else {
		 
     echo '<img src="images/register/v.png" />';
	 } 
	 
	
}

form.php

   <?php include 'header.php'; ?>
   <html>  
  <head> 

  <script src="http://code.jquery.com/jquery-1.9.0.min.js" type="text/javascript"></script>
	<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script type="text/javascript" src="js/jquery.complexify.js"></script>
<script type="text/javascript"> 
$(function () { 
	$("#senha").complexify({}, function (valid, complexity) { 
	  $("#progressbar" ).progressbar({
				  value: complexity
				});
 //exibir o nível da senha
		 }); 
 
 }); </script>
<script type="text/javascript">
 function onlyDigit(e) {
  var unicode = e.charCode ? e.charCode : e.keyCode;
  if (unicode != 8 && unicode != 9) {
   if (unicode<48||unicode>57) {
    return false
   }
  }
 }
 
</script>
<script>
function concluir() {
	document.form.action = "registrar_banco.php";
	 document.form.submit();
}
</script>
<script>
function validaSenha (input){ 
    if (input.value != document.getElementById('senha').value) {
    input.setCustomValidity('Repita a senha corretamente');
  } else {
    input.setCustomValidity('');
  }
} 
</script>
<script src="ajax/funcs.js"></script> 
 <link rel="stylesheet" type="text/css" href="estilo_registro.css">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
</head>
<?php
session_start();
if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])){
// Informe o seu App ID abaixo

  $appId = '187026721491838';

// Digite o App Secret do seu aplicativo abaixo:

  $appSecret = '947beef67b984dd6ebf6d3fbeef5ecc4';

  // Url informada no campo "Site URL"

  $redirectUri = urlencode('http://www.musicvibe.com.br/registrar');

  // Obtém o código da query string

  $code = $_GET['code'];

 // Monta a url para obter o token de acesso e assim obter os dados do usuário

  $token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $appId . "&redirect_uri=" . $redirectUri
. "&client_secret=" . $appSecret . "&code=" . $code;

 //pega os dados

  $response = @file_get_contents($token_url);
if($response){
	
$params = null;

    parse_str($response, $params);

    if(isset($params['access_token']) && $params['access_token']){
		
      $graph_url = "https://graph.facebook.com/me?access_token="
      . $params['access_token'];
      $user = json_decode(file_get_contents($graph_url));
	  
	  // nesse IF verificamos se veio os dados corretamente

      if(isset($user->email) && $user->email){

 

    /*

    *Apartir daqui, você já tem acesso aos dados usuario, podendo armazená-los
    *em sessão, cookie ou já pode inserir em seu banco de dados para efetuar
    *autenticação.
    *No meu caso, solicitei todos os dados abaixo e guardei em sessões.

    */

 

        $_SESSION['email'] = $user->email;
        $_SESSION['nome'] = $user->name;
        $_SESSION['localizacao'] = $user->location->name;
        $_SESSION['uid_facebook'] = $user->id;
        $_SESSION['user_facebook'] = $user->username;
        $_SESSION['link_facebook'] = $user->link;

      }

    }else{

      echo "Erro de conexão com Facebook";
      exit(0);

    }
  }else{

    echo "Erro de conexão com Facebook";
    exit(0);

  }

}else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])){
  echo 'Permissão não concedida';
}
?>
<body>
<img src="images/register/top.png" name="img_top" width="64" height="64" id="img_top" />
<div class="top">
Registre - se:
</div>
<!-- Inicio Registro -->
<div>
<form id="form" name="form" method="post" action="registrar_banco.php">
<li><label><input name="nome" id="nome" type="text" pattern="^.{6,30}$" oninvalid="setCustomValidity('O seu nome deve ter entre 6 e 30 caracteres')"placeholder="Qual seu nome ?" onchange="try{setCustomValidity('')}catch(e){}" required/></label></li>

<li><label><div id="campo_user"></div><input name="user" id="user" type="text" onkeyup="validarDados('user', document.getElementById('user').value);" oninvalid="setCustomValidity('A usuário deve ter entre 6 e 15 caracteres')" pattern="^.{6,15}$" onchange="try{setCustomValidity('')}catch(e){}" placeholder="Usuário" required/></label></li>

<li><label><input name="senha" id="senha" type="password" pattern="^.{6,20}$" oninvalid="setCustomValidity('A senha deve ter entre 6 e 20 caracteres')"  placeholder="Senha" onchange="try{setCustomValidity('')}catch(e){}" required/></label><div id="progressbar">* Utilize Maiusculas e minusculas.</div></li>

<li><label><input name="confirma_senha" id="confirma_senha" type="password" placeholder="Confirmar Senha"  oninput="validaSenha(this)" required /></label></li>

<li><label><div id="campo_email"></div><input name="email"  id="email" onkeyup="validarDados('email', document.getElementById('email').value);" placeholder="nome@email.com" type="email" required/></label></li>
<div id="result1"></div>
<li><label><input name="nascimento" id="nascimento" placeholder="Data de nascimento" type="date" pattern="[0-9]{2}\/[0-9]{2}\/[0-9]{4}$" min="1910-01-01" max="2004-01-01" /></label></li>


<br/><br/>
<input id="concluir" type="submit" value="Concluir registro" />

</form>
</div>
<!-- Final Registro -->
</body>
</html>

função ajax

//	Variável que receberá o objeto XMLHttpRequest
var req;

function validarDados(campo, valor) {

	// Verificar o Browser
	// Firefox, Google Chrorme, Safari e outros
	if(window.XMLHttpRequest) {
		req	= new XMLHttpRequest();
	}
	// Internet Explorer
	else if(window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	// Aqui vão os valores, caso haja mais de um, e o nome do campo que pediu a requisição.
	var url = "ajax/validacao.php?campo="+campo+"&valor="+valor;
	
	// Chamada do método open para processar a requisição
	req.open("Get", url, true); 
    // Quando o objeto recebe o retorno, chamamos a função callback();
	req.onreadystatechange = function() {
		
		// Exibindo mensagem de carregar
		if(req.readyState == 1) {
			document.getElementById('campo_' + campo + '').innerHTML = '<font color="gray"><img src="http://www.xiconeditor.com/image/icons/loading.gif" /></font>';
		}
	
		// Verifica se o Ajax realizou todas as operações corretamente (essencial)
		if(req.readyState == 4 && req.status == 200) {
	        // Resposta retornada pelo executor.php
			var resposta = req.responseText;
			
			// Abaixo colocamos a resposta na div do campo que fez a requisição
			document.getElementById('campo_'+ campo +'').innerHTML = resposta;
		}
	
	}
	
	req.send(null);
	
}

se alguém puder me ajudar, eu agradeço

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.