I need to check if cnpj is already registered in the database and return to the client if it already exists in the database, the problem I do not want to happen refresh the page so that the user does not lose the data typed, the php script is working perfectly, the js script also but only with the async: false statement, when I shot async: false it simply does not return anything.
JS script:
$(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);
}
});
}
});
});
SCRIPT PHP:
<?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!!';
}
?>
db.class.php script
<?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 not get the return doing the requisition without giving the refresh. When I use complete instead of success it returns like this: object Object Can anyone give me an idea how to do this?