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?
Post the code of class db
– Maycon Benito
Done, includes the db class.
– Dhouglas Silva Gomes
It was just the button, it was like Submit, I switched to button it worked, Darlan tip! Thanks!!
– Dhouglas Silva Gomes