I have a problem some time with a registry made in ajax but when trying to register client user in the client table of a sql error stating that a missing
I have tried several ways. I understand that this parameter that the query wants is the id of the table, which is sent at index 0 of array$dados
, how can I make index 0 not included in the query?
I am sending my entire code to see if anyone can help me the connection is ok, ajax is ok the problem is on the page crud.php.
$(function(){
//GERAIS
var errmsg = $('.msg');
var forms = $('form');
var botao = $('.j_buttom');
var urlpost = 'php/crud.php';
botao.attr("type","submit");
forms.submit(function(){
errmsg.fadeOut("fast");
return false;
});
function carregando(){
errmsg.empty().html('<p class="load"><img src="img/load.gif" alt="Carregando..."> Aguarde, enviando requisição!</p>').fadeIn("fast");
}
function errosend(){
errmsg.empty().html('<p class="erro"><strong>Erro inesperado,</strong> Favor contate o admin!</p>').fadeIn("fast");
}
//GENÉRICAS
function errdados( mensagem ){
errmsg.empty().html('<p class="erro">'+mensagem+'</p>').fadeIn("fast");
}
function sucesso( mensagem ){
errmsg.empty().html('<p class="accept">'+mensagem+'</p>').fadeIn("fast");
}
$.ajaxSetup({
url: urlpost,
type: 'POST',
beforeSend: carregando,
error: errosend
});
//CADASTRO
var cadastro = $('form[name="cadastro"');
cadastro.submit(function(){
var dados = $(this).serialize();
var acao = "&acao=cadastro";
var sender = dados+acao;
$.ajax({
data: sender,
success: function( resposta ){
if(resposta == '1'){
errdados('<strong>Erro ao cadastrar:</strong> Existem campos em branco!');
}else if(resposta == '2'){
errosend();
}else{
sucesso( 'Parabéns <strong>'+resposta+'</strong>, seu cadastro foi realizado!' );
}
},
});
});
});
Connecting to the database
function conectar() {
define("HOST", "localhost");
define("BD", "db_clientes");
define("USER", "root");
define("PASS", "");
try {
$dsn = "mysql:host=".HOST.";dbname=".BD;
$pdo = new PDO($dsn, USER, PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Erro: ".$e->getMessage();
}
return $pdo;
}
require 'conexao.php';
switch ($_POST['acao']) {
case 'cadastro':
$c['nome'] = strip_tags(trim($_POST['nome']));
$c['sobrenome'] = strip_tags(trim($_POST['sobrenome']));
$c['email'] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
$c['telefone'] = filter_var($_POST["telefone"], FILTER_VALIDATE_INT);
$c['senha'] = strip_tags(trim($_POST['senha']));
$c['data_cadastro'] = date('Y-m-d H:i:s');
if (in_array('', $c)) {
echo '1';
} else {
$dados = array(
1 => $c['nome'],
2 => $c['sobrenome'],
3 => $c['email'],
4 => $c['telefone'],
5 => $c['senha'],
6 => $c['data_cadastro'],
);
$Fields = implode(', ', array_keys($c));
$values = ':'.implode(' , :', array_keys($c));
try {
$cadastra = conectar()->prepare("INSERT INTO clientes ({$Fields}) VALUES ({$values})");
$cadastra->execute($dados);
if ($cadastrar->rowCount() == 1) {
echo $c['nome'].' '.$c['sobrenome'];
} else {
echo '2';
}
} catch (PDOException $e) {
echo $e->getMessage();
}
}
break;
default:
echo 'Erro ao selecionar ação!';
}