Asynchronous Request Jquery+Ajax+PHP returns empty object

Asked

Viewed 209 times

1

I need to check if the cnpj is already registered in the database and return to the client if it already exists in the database, the problem that I do not want to happen the refresh of the page so that the user does not lose the typed data, the php script is working perfectly, scripth js also but only with the async:false statement, when I shoot async: false it simply returns nothing.

Script JS:

     $(document).ready(function(){

        $('#btn_salva_cliente').click(function(){

            if($('#cnpj_cliente').val().length > 0){

                $.ajax({

                    url:'assets/scripts/php/registra_cliente.php',

                    type:'POST',

                    async: false,

                    data:$('#form_cliente').serialize(),

                    success: function(data){
                        alert(data);
                    }


                });



            }


        });


    });

PHP SCRIPT:

<?php

session_start();

if(!isset($_SESSION['id_usuario'])){
        header('Location: index.php?erro=1');
}

//inclue a classe db no script atual
require_once('db.class.php');

//recuperando os dados do formulario de 
//cadastro de Clientes via Método POST        
//e atribuindo a uma variável
$cnpj_cliente = $_POST['cnpj_cliente'];
$nome_razao_cliente = $_POST['nome_razao_cliente'];
$inscricao_cliente = $_POST['inscricao_cliente'];
$identificacao_icms = $_POST['identificacao_icms'];
$cep = $_POST['cep'];
$rua_cliente = $_POST['rua_cliente'];
$numero_endereco_cliente = $_POST['numero_endereco_cliente'];
$complemento_endereco_cliente = $_POST['complemento_endereco_cliente'];
$bairro_cliente = $_POST['bairro_cliente'];
$uf_cliente = $_POST['uf_cliente'];
$cidade_cliente = $_POST['cidade_cliente'];
$pais_cliente = $_POST['pais_cliente'];
$email_cliente = $_POST['email_cliente'];
$telefone_cliente = $_POST['telefone_cliente'];
$observacao_cliente = $_POST['observacao_cliente'];

//instancia um objeto da classe db
$objDb = new db();

//instancia um objeto que recebe a função
//que faz a conexão com o banco de dados
$link = $objDb->conecta_mysql();

//variável utilizada para verificar se
//o usuário e o email já existe
$cnpj_existe = false;

$imprime = '';
//verificar se o cnpj já existe            

$sql = "SELECT * FROM clientes WHERE cnpj = '$cnpj_cliente' ";

if($resultado_id = mysqli_query($link, $sql)) {

    $dados_cliente = mysqli_fetch_array($resultado_id);

    if(isset($dados_cliente['cnpj'])){
        $cnpj_existe = true;
    }

}else{
        echo 'Erro ao tentar localizar o registro de cnpj';
    }

if($cnpj_existe){        
             echo 'CNPJ já CADASTRADO';   

             die();
}    

$sql1 = " INSERT INTO clientes(cnpj, razao_social, inscricao_estadual, id_inscricao_estadual, cep, rua,";
$sql1 .= " numero_endereco, complemento, bairro, uf, cidade, pais, email, telefone, observacoes) ";
$sql1 .= " VALUES ('$cnpj_cliente', '$nome_razao_cliente', '$inscricao_cliente', '$identificacao_icms',";
$sql1 .= " '$cep', '$rua_cliente', '$numero_endereco_cliente', '$complemento_endereco_cliente',";
$sql1 .= " '$bairro_cliente', '$uf_cliente', '$cidade_cliente', '$pais_cliente', '$email_cliente', ";
$sql1 .= " '$telefone_cliente', '$observacao_cliente' )";

//executa query
if(mysqli_query($link, $sql1)){            
        echo 'Parabéns CLIENTE CADASTRADO!! ';     
}else{                   
        echo 'ERRO AO CADASTRAR CLIENTE!!';           
}


?>

Script db.class.php

<?php

//classe para conexão ao banco  de dados

class db{

    //host de hospedagem do banco de dados
    private $host = 'xxxx';

    //usuario de acesso ao banco de dados
    private $usuario = 'xxxx';      

    //senha do usuario do banco de dados
    private $senha = 'xxxx';

    //nome do banco de dados
    private $database = 'xxxx';

    public function conecta_mysql(){
    //função  que faz a conexão com o banco de dados propriamente dita    
        //criar conexao
        $con = mysqli_connect($this->host, $this->usuario, $this->senha, $this->database);

        //ajusta o charset do banco de dados com a aplicação
        mysqli_set_charset($con, 'utf8');


        if(mysqli_connect_errno()){
        //condição que verifica erro de conexao de bd    
            echo'Erro ao tentar se conectar com o BD MySQL:'.mysqli_connect_error();
        }

        return $con;

    }
}


?>

It’s all working, I just can’t get the return doing the requisition without giving the refresh. When use complete instead of Success it returns like this: Object Object Can someone give me an opinion on how to do this?

  • 1

    Post the code of class db

  • Done, includes the db class.

  • It was just the button, it was like Submit, I switched to button it worked, Darlan tip! Thanks!!

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.