formulario ajax e php
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](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
Discussão (0)
Carregando comentários...