Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal!
Estou desenvolvendo um pequeno portal. E preciso resolver uma questão.
No momento de "Registrar-me no portal", preciso que assim que o usuário preencher o e-mail dele, o sistema verifique em uma tabela previamente preenchida por mim, se o email deste usuário existe. Ou quando o usuário clicar em "Cadastrar" então o sistema verifica nesta tabela se existe este e-mail. Caso exista, prossegue com o cadastro. Caso não exista, simplesmente retorna para a o index.
Eu já faço o cadastro na base de dados com php_pdo, tudo direitinho.
Mas se houver um exemplo mesmo em jquery ou json seria interessante.
Desde já agradeço.
Beleza Winterjeferson!
Obrigado pela atenção. Deixa explicar melhor.
Tenho na base mysql uma relação de e-mails de Consultores previamente cadastrados por mim.
Só pra esclarecer, estou desenvolvendo um pequeno portal.
Ao acessar o portal, o Consultor tem a chave "Entrar" e o clicar nela aparecerá o formulário dentro de uma div para
logar com o e-mail e senha. Porém antes disso ele precisa se registrar.
Nesse formulário de logar possui também um link: "Registrar-me no portal".
Bom, vamos ao que interessa.
Preciso que, quando o Consultor clicar em "Registrar-me no portal", primeiramente carregue dentro da div um formulário
onde o Consultor vai verificar se existe ou não o seu e-mail previamente cadastrado por mim.
Ou seja, um verificador de e-mail. Bom, até aí já está fazendo ou seja, o sistema já verifica na tabela se existe o e-mail do Consultor.
Quero que ao verificar o e-mail, se existe, então emite a mensagem: "E-mail já cadastrado" e redireciona para o formulário "Logar" e caso não exista então carrega pra dentro da div o formulário para cadastrar. Caso o e-mail do Consultor não for encontrado, emite a mensagem: 'Usuário sem autorização para se registrar" e retorna para o "index.php".
E não estou conseguindo carregar o bendito formulário.
Dentro da página: verificar_email.php estou usando ajax para validar os dados.
Só que não estou sabendo fazer as condicionais.
<script type="text/javascript">
$(document).ready(function(e){
$('#ver_email').click(function(e){
var txtEmail = $("#txtEmail");
if($("#txtEmail").val()!=""){
("Verificando o seu e-mail!");
}
$.ajax({
url: 'verificando_email.php',
type: 'POST',
data:{"txtEmail" : txtEmail.val()},
success: function(data) {
console.log(data);
data = $.parseJSON(data);
}
});
});
});
</script>
<form id="f2" name="f2" method="post" action="">
Desde já agradeço.acho que não entendi muito bem, quais as condicionais que você não está conseguindo fazer?
Vamos lá. Vou tentar explicar.
Preciso saber como fazer essa validação através do ajax.
Eu envio a consulta através das linhas 2,3,4 correto?
Preciso que me retorne um valor da tabela pois na linha 2 faço a resquisição no banco de dados.
Preciso agora fazer a verificação por esse retorno da base. Vamos às condições:
Se existe o e-mail e o status=0, então o usuário está autorizado a se cadastrar e abre dentro da div a página pra cadastro.
Se não existe o e-mail, então o usuário não está autorizado a se cadastrar e retorna para o index.php
Se existe o e-mail e o status=1, então emite mensagem de usuário ou e-mail já cadastrado
Como que implemento essas condições no ajax abaixo?
1- $.ajax({ 2 - url: 'verificando_email.php', 3 - type: 'POST', 4 - data:{"txtEmail" : txtEmail.val()}, 5 - success: function(data) { 6 - console.log(data); 7 - data = $.parseJSON(data);
Grato pela atenção.Na linha 5, o data é o retorno do php.
Na linha 6 só é exibido no console (f12).
Eu traria a validação pronta já do php. E dentro do success, colocaria um switch.
switch(data){
case 1:
//abre dentro da div a página pra cadastro
break;
case 2:
//o usuário não está autorizado a se cadastrar e retorna para o index.php
break;
case 3:
//emite mensagem de usuário ou e-mail já cadastrado
break;
}Bacana. Vou implementar dessa forma e ver o que dá. Obrigado WinterJeferson pela aula.
de nada, bons estudos!
Deixa eu te perguntar só mais uma coisa:
Você sabe se existe alguma linguagem web para desenvolver ferramentas para autocad ?
não tenho ideia
Como autodesk desenvolve em c++ creio que a plataforma nodejs, não ?
nunca fiz nada em C++ nem em nodejs
Valeu !
Opa!
Tudo que é novo, a gente estranha um pouco mas depois vai....kkk
Tô agarrado numa questão boba. Não estou conseguindo trazer o resultado do banco de dados que esta em outra página.
Veja bem é a mesma questão da verificação do email. o switch analisa ocultamente o resultado da consulta no banco de dados ou eu posso trazer pra outra página em uma div?
Inclusive a validação já é feita na consulta em "verificando_email.php"
Me ajuda aí mestre.
verificar_email.php
(...)
jquery:
<script type="text/javascript">
$('#resultado').hide();
$('#Verificar').click(function(e){
var valor = $(txtEmail).val();
$.post('verificando_email.php', {email:valor}, function(data){
console.log(data);
switch(data){
case 1:
//abre dentro da div a página pra cadastro
break;
case 2:
//o usuário não está autorizado a se cadastrar e retorna para o index.php
break;
case 3:
//emite mensagem de usuário ou e-mail já cadastrado
break;
$('#resultado').html(data) //ou append(data)
$('#resultado').show(); << aqui quero o ver o resultado da consulta, porém não vem.
});
return false;
});
</script>
</head>
<body>
<div id="resultado">Resultado</div>
<form id="f2" name="f2" method="post" action="">
<div id="emspwd">
<table width="520" height="323" border="0" bgcolor="#CC66FF">
<tr>
<td height="25" bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"><a href="index.php">X</a></td>
</tr>
<tr>
<td width="23" height="83" bgcolor="#CC66FF"> </td>
<td width="462" align="center" bgcolor="#CC66FF"><img src="imgs/checar_1.jpg" width="428" height="168" align="middle" /></td>
<td width="21" bgcolor="#CC66FF"> </td>
</tr>
<tr>
<td height="28" colspan="3" valign="bottom" bgcolor="#CC66FF">Entre com o seu e-mail </td>
</tr>
<tr>
<td height="28" bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"><input name="txtEmail" type="text" id="txtEmail" size="35" placeholder required="" /></td>
<td bgcolor="#CC66FF"> </td>
</tr>
<tr>
<td height="28" bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"><input type="submit" name="Verificar" id="Verificar" value="Verificar" /></td>
<td bgcolor="#CC66FF"> </td>
</tr>
<tr>
<td bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"> </td>
<td bgcolor="#CC66FF"> </td>
</tr>
</table>
</form>
</div>
</body>
</html>
verificando_email.php
<?php
include("conexao.php");
$pdo=conectar();
try {
if(isset($_POST['Verificar'])){
$email = $_POST['txtEmail'];
$stmt=$pdo->prepare("SELECT * FROM identificadores WHERE email='".$email."'");
$stmt->execute();
$linha = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($linha as $listar){
$email = $listar["email"];
$st = $listar["st"];
if ($st=="1"){
echo '
<script type="text/javascript">alert("E-mail já cadastrado");
</script>';
/* echo '<script type="text/javascript">location.replace("index.php");</script>'; */
}
if ($st=="0"){
echo '
<script type="text/javascript">alert("Consultor autorizado a se registrar");
</script>';
/* echo '<script type="text/javascript">location.replace("cadastrar.php");</script>'; */
}
}
//Verifica em caso de NÃO for Consultor da equipe...
$stmt=$pdo->prepare("SELECT * FROM identificadores WHERE email='".$email."'");
$stmt->bindValue(':email', $email, PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->rowCount();
if($res < 1){
echo '
<script type="text/javascript">alert("Visitante não autorizado a se registrar");
</script>';
/* echo ' <script type="text/javascript">alert("Cadastre-se em nossa equipe.");</script>'; */
/* echo ' <script type="text/javascript">location.replace("index.php");</script>'; */
}
// Se houver mensagens de erro, exibe-as
if (count($error) != 0) {
foreach ($error as $erro) {
echo $erro . "";
}
}
}
} catch (Exception $e) {
echo 'Error: '. $e->getMessage();
}
?>
Nota: Está funcionando porém quero executar sem o refresh e redirecionar para as devidas páginas.o switch funciona como um if.
daria no mesmo fazer:
if(data === 'resultado1'){
acao1();
}
if(data === 'resultado2'){
acao2();
}
você pode fazer a consulta com ajax:
(se estiver utilizando jquery :)
$.ajax({
url: "file.php"