validar o php em um submit assincrono
Olá pessoal, tudo bem ? Eu estou começando a aprender a mecher com ajax, validacao client-side consegui fazer numa boa, mas estou com duvidas na hora de validar no php, entendo que o fluxo é o seguinte:
FORM PARA O SUBMIT -> PELO AJAX FAZ REQUISICAO AO ARQUIVO PHP -> O ARQUIVO PHP FAZ A OPERACAO NO BANCO E DEVOLVE ESSA INFORMACAO PRO AJAX
Soh que eu estou com duvidas na hora de validar no php, se fosse do jeito comum faria com um echo, mas como eh assincrono eu tenho que devolver esse resultado por ajax e ali no form vou mostarr a msg com um plugin de notificacao.
Vou pegar as partes que interessam:
meu arquivo function.js
//----------------------------Envio do form-------------------------------------
$("#frm_cadastro").submit(function(event) {
// event.preventDefault();
var dados = $(this).serialize();
// alert(dados);
var msg = "";
$(".required").each(function() {
if($(this).val() == "") {
msg += "<p>O campo "+$(this).attr("data-label")+" deve ser preenchido !</p><br />";
$(this).css("border-color", "red");
} else {
$(this).css("border-color", "#8a8a8a");
}
});
if(msg == "") {
$.ajax({
type : "POST",
dataType: "json",
url : "controllers/cadastro.php",
async: true,
data: dados,
success: function(response) {
$.each($("input[type=text], input[type=file], input[type=password], textarea"), function() {
// $("#frm_cadastro").children().each(function() {
// if($(this).attr("type") == "text" || $(this).attr("type") == "file" || $(this).attr("type") == "password" || $(this).is("textarea")) {
$(this).val("");
// }
});
var n = noty({text: 'Seu cadastro foi efetuado com sucesso !', type: 'success', timeout: 2000});
},
error: function(response) {
if(msgerro == "") {
var msgerro = "Houve um erro ao efetuar o cadastro, por favor tente mais tarde !";
}
var n = noty({text: msgerro, type: 'error'});
}
});
return false;
} else {
var n = noty({text: msg, type: 'error'});
return false;
}
});meu arquivo cadastro.php
<?php
require_once "../includes/Config.php";
//Verifica se o plano: gratuito ou pago
if($_POST["plano"] == "gratis") {
//Pega os dados do formulario
$plano = $_POST["plano"];
$categoria = $_POST["categoria"];
$nome = $_POST["nome"];
$cep = $_POST["cep"];
$estado = $_POST["estado"];
$cidade = $_POST["cidade"];
$endereco = $_POST["endereco"].", ".$_POST["numero"]." - ".$_POST["bairro"];
$complemento = $_POST["complemento"];
$telefone = $_POST["telefone"];
$descricao = $_POST["descricao"];
$email = "";
$site = "";
$seo = "";
$video = "";
$logo = "";
$login = "";
$senha = "";
$flag = $_POST["flag"];
$sql = "INSERT INTO tbmaterias(plano, id_titulo, nome, cep, estado, cidade, endereco, complemento, telefone, descricao, email, site, seo, video, imagem, login, senha, flag_status) VALUES('$plano', '$categoria', '$nome', '$cep', '$estado', '$cidade', '$endereco', '$complemento', '$telefone', '$descricao', '$email', '$site', '$seo', '$video', '$logo', '$login', '$senha', '$flag')";
mysql_query($sql) or die(mysql_error());
$response = array("success" => true);
echo json_encode($response);
} else {
//Caso contrario, ira realizar o cadastro pago
$plano = $_POST["plano"];
$categoria = $_POST["categoria"];
$nome = $_POST["nome"];
$cep = $_POST["cep"];
$estado = $_POST["estado"];
$cidade = $_POST["cidade"];
$endereco = $_POST["endereco"].", ".$_POST["numero"]." - ".$_POST["bairro"];
$complemento = $_POST["complemento"];
$telefone = $_POST["telefone"];
$descricao = $_POST["descricao"];
$email = $_POST["email"];
$site = $_POST["site"];
$seo = $_POST["seo"];
$video = $_POST["video"];
$logo = "";
$login = $_POST["login"];
$senha = $_POST["senha"];
$flag = "";
//Verifica se o usuario digitado ja existe
if(mysql_num_rows(mysql_query("SELECT * FROM tbmaterias WHERE login = '$login'")) == 0) {
$sql = "INSERT INTO tbmaterias(plano, id_titulo, nome, cep, estado, cidade, endereco, complemento, telefone, descricao, email, site, seo, video, imagem, login, senha, flag_status) VALUES('$plano', '$categoria', '$nome', '$cep', '$estado', '$cidade', '$endereco', '$complemento', '$telefone', '$descricao', '$email', '$site', '$seo', '$video', '$logo', '$login', '$senha', '$flag')";
mysql_query($sql) or die(mysql_error());
$response = array("success" => true);
echo json_encode($response);
} else {
$response = array("error" => true, "msgerro" => "O usuário digitado já existe !");
echo json_encode($response);
}
}
?>
Alguém por favor pode me ajudar ?
Discussão (4)
Carregando comentários...