Ir para conteúdo
Fórum Script Brasil
  • 0

Ajax sucess resposta da inserção no bd


Alex Fernandes

Pergunta

Fala "Jedais";

Quando do form mando inserir no bd e a chave primária é violado obtenho uma resposta, dou um feedback para o usuário dizendo cnpj já existe.

Mas passei a fazer com ajax para evitar o carregamento da pagina, e o problema é o seguinte:

JS e o Ajax

$(document).ready(function() {
    
	$("#id_botao").click(function(e) {
	
		if (!validarForm()) {
			return;
		}
		
		var nome = $("#nome");
        var nomePost = nome.val();
        
		var cnpj = $("#cnpj");
        var cnpjPost = cnpj.val();
        
		var radioPost;
		
		if(document.getElementById('radio0').checked == true) {
			
			radioPost = 0;
		}else {
			radioPost = 1;
		}
		
		$.ajax({
			url : 'emp-inserir.php',
			type : "POST",
			data: {
				nome: nomePost, cnpj: cnpjPost, radio: radioPost //chave:valor
			},
			datatype: "html",
			beforeSend: function(){
				
				// modal dizendo que esta salvando
			},
			success : function(response) {
				
				// AQUI quero o retorno dizendo que foi gravado com sucesso ou se houve a violação da chave primária
			},
			error : function(data) {
				alert('Erro: URL não encontrada!');// não achou a url (debug)
			},
			
		})

	});// fim botão

});

A URL para o ajax

	<?php	

	$resultadoDao = '0';

	require_once('dao/crud-emp.php');

	$dao = new DaoEmpresa();
	
	$nome = $_POST['nome'];
	$cnpj = $_POST['cnpj'];
	$radio = $_POST['radio'];

	if ($dao->inserir($nome, $cnpj, $radio)) {
		
		$resultadoDao = 'SUCESSO';// NÃO CONSIGO PEGAR ESTE VALOR
	
	}else {
		$resultadoDao = 'ERRO';// NÃO CONSIGO PEGAR ESTE VALOR
	}
	
	echo $resultadoDao;
?>

O arquivo dao/crud-emp-.php

public function inserir($nome, $cnpj, $isAutomatico) {

        error_reporting(0);

		// retirar caracteres acentuados
		$nome = strtr($nome, $this->map);
		
		// forçar a gravar tudo em maiusculo. Se quiser apenas a primeira letra de cada palavra em maiusculo, usar ucwords($nome)
		$nome = strtoupper($nome);
		
        $sql = "INSERT INTO empresa (nome, cnpj, isAutomatico) VALUES ('$nome', '$cnpj', '$isAutomatico')";
        
		// retorna falso quando há duplicidade na chave primária, no caso o campo cnpj
        if (!mysql_query($sql)) {
			
			//$this->conectar->desconecta();
			
			return false;
        }
		
		$this->addAutomatico($nome);
		
		$this->conectar->desconecta();
		
		return true;
    }

Amigos, tudo funciona, grava no bd quando é para gravar e não gtva quando o cnpj (chave primária) foi violada.

Mas eu tenho que dar um feedback para o usuário saber que foi ou não gravado. Percebi através do console.log, que o parâmetro da função sucess do ajax retorna uma pagina inteira, tem como eu pegar um true/false? Desde já agradeço.

Editado por Alex Fernandes
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...