Ir para conteúdo

POWERED BY:

Arquivado

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

dutopfave

Cadastro com Ajax

Recommended Posts

Galera, tenho um cadastro com ajax, até ai blz tava funcionando, so que quis fazer uma verificação se o email ja existi não, se ja existe ai seria como erro, caso ao contrario seria success e cadastrava normal, so não ta indo dps q fiz isso não sei oq é, segue codigo Ajax e PHP:

 

Ajax:

 

$(document).ready(function(e) {
    
            $("form[ajax=cadastro]").submit(function(e) {
                
                e.preventDefault();
                var form_data = $(this).serialize();
                var form_method = $(this).attr("method").toUpperCase();
                
                
                $.ajax({
                    url: 'salvar_cadastro.php',
                    type: form_method,      
                    data: form_data,     
                    cache: false,
                    dataType: 'json',
                    success: function(data){                          
                        if(data == 'true'){ 
                          window.location = 'cadastro.php?modal=ok';
                        }else{
                          window.location = 'cadastro.php?modal=error';
                        }
                    },
                });

                
            });
            
        });

 

 

PHP (salvar_cadastro.php):

 

<?php
     require 'Connections/config.php';
    date_default_timezone_set('America/Sao_Paulo');

    // INICIO VERIFICAR SE EMAIL JÁ EXISTE
    $email_verificar = addslashes($_POST['email']);   
    $Verifica_Email = $pdo->prepare("SELECT email FROM cad_administracao WHERE email = :email");
    $Verifica_Email->bindValue(":email", $email_verificar);
    $Verifica_Email->execute();
    if($Verifica_Email->rowCount() > 0){
        $data = array("success" => false);
    	echo json_encode($data);
    }else{
    // FIM VERIFICAR SE EMAIL JA EXISTE

    $nome = addslashes($_POST['nome']);
    $sobrenome = addslashes($_POST['sobrenome']);
    $email = addslashes($_POST['email']);
    $cpf_cnpj = addslashes($_POST['cpf_cnpj']);
    $pessoa = addslashes($_POST['pessoa']);
    $sexo = addslashes($_POST['sexo']);
    $telefone = addslashes($_POST['telefone']);
    $endereco = addslashes($_POST['endereco']);
    $numero = addslashes($_POST['numero']);
    $complemento = addslashes($_POST['complemento']);
    $cidade = addslashes($_POST['cidade']);
    $bairro = addslashes($_POST['bairro']);
    $cep = addslashes($_POST['cep']);
    $estado = addslashes($_POST['estado']);
    $como_conheceu = addslashes($_POST['como_conheceu']);
    $foto = addslashes($_POST['foto']);
    $login = addslashes($_POST['login']);
    $senha = addslashes(md5($_POST['senha']));
    $status = addslashes($_POST['status']);
    $active = addslashes($_POST['active']);
    $data = addslashes(date('Y-m-d H:i:s'));

    $Inserir = $pdo->prepare("INSERT INTO cad_administracao (nome, sobrenome, email, cpf_cnpj, pessoa, sexo, telefone, endereco, numero, complemento, cidade, bairro, cep, estado, como_conheceu, foto, login, senha, status, active, data) VALUES (:nome, :sobrenome, :email, :cpf_cnpj, :pessoa, :sexo, :telefone, :endereco, :numero, :complemento, :cidade, :bairro, :cep, :estado, :como_conheceu, :foto, :login, :senha, :status, :active, :data)");
    $Inserir->bindValue(":nome", $nome);
    $Inserir->bindValue(":sobrenome", $sobrenome);
    $Inserir->bindValue(":email", $email);
    $Inserir->bindValue(":cpf_cnpj", $cpf_cnpj);
    $Inserir->bindValue(":pessoa", $pessoa);
    $Inserir->bindValue(":sexo", $sexo);
    $Inserir->bindValue(":telefone", $telefone);
    $Inserir->bindValue(":endereco", $endereco);
    $Inserir->bindValue(":numero", $numero);
    $Inserir->bindValue(":complemento", $complemento);
    $Inserir->bindValue(":cidade", $cidade);
    $Inserir->bindValue(":bairro", $bairro);
    $Inserir->bindValue(":cep", $cep);
    $Inserir->bindValue(":estado", $estado);
    $Inserir->bindValue(":como_conheceu", $como_conheceu);
    $Inserir->bindValue(":foto", $foto);
    $Inserir->bindValue(":login", $login);
    $Inserir->bindValue(":senha", $senha);
    $Inserir->bindValue(":status", $status);
    $Inserir->bindValue(":active", $active);
    $Inserir->bindValue(":data", $data);
    $Inserir->execute();


    $data = array("success" => true);
    echo json_encode($data);
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dutopfave O erro é bem bobo, você converte o array em PHP para Objeto Json, porem quando você faz a verificação do valor que foi enviado pela requisição, você não escolhe o índice do Objeto.

 

Para resolver isso basta você escolhe o índice do objeto:

if(data["success"] == 'true'){ 
	window.location = 'cadastro.php?modal=ok';
	}else{
	window.location = 'cadastro.php?modal=error';
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, fiz oq se me disse, e fiz o teste aki mesmo cadastrando com email que nao existe era pra ir como success true certo, mais ta indo como error,  mais ta cadastrando, entao o php ta certo, esse IF no ajax não ta indo

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dutopfave Bom, falto você fazer a conversão de string do dados para um objeto javascript, apesar de você converter o array em php para json, o valor vira uma string no formato json, e não um objeto javascript.

 

Você pode usar a função JSON.parse(), para converter o valor de string para um json.

 

data = JSON.parse(data);
if(data["success"] == 'true'){ 
	window.location = 'cadastro.php?modal=ok';
	}else{
	window.location = 'cadastro.php?modal=error';
}

Agora deve funcionar corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.