0
I have this file I call via ajax, however it always returns me "Undefined" not any other error clue.
<?php
require_once 'Db.php';
$sql = Database::conexao();
date_default_timezone_set('America/Sao_Paulo');
$mysqldate = date('Y-m-d H:i:s');
$errors = array();
$data = array();
if (empty($_POST['titulo']))
$errors['titulo'] = 'titulo é necessario.';
if (empty($_POST['mensagem']))
$errors['mensagem'] = 'mensagem é necessario.';
if ( ! empty($errors)) {
$data['sucesso'] = false;
$data['erros'] = $errors;
} else {
$titulo = $_POST['titulo'];
$mensagem = $_POST['mensagem'];
if (empty($_FILES['imagem'])){
$resultado = $sql->query("INSERT INTO tb_noticias(titulo,mensagem,dataenvio) VALUES(:TITULO, :MENSAGEM, :DATAENVIO)",array(
":TITULO"=>$titulo,
":MENSAGEM"=>$mensagem,
":DATAENVIO"=>$mysqldate
));
if($resultado){
$data['sucesso'] = true;
$data['mensagem'] = 'Success!';
}else{
$data['sucesso'] = false;
$data['mensagem'] = 'Erro ao enviar noticia!';
}
}else{
$ext = strtolower(substr($_FILES['imagem']['name'],-4)); //Pegando extensão do arquivo
$new_name = date("Y.m.d-H.i.s") . $ext; //Definindo um novo nome para o arquivo
$dir = '../imagens/'; //Diretório para uploads
$base_url="http://".$_SERVER['SERVER_NAME']."/imagens/";
if (move_uploaded_file($_FILES['imagem']['tmp_name'], $dir.$new_name)) {
$stmt = $sql->query("INSERT INTO tb_noticias(titulo,mensagem,imagem,dataenvio,unidade,url) VALUES(:TITULO, :MENSAGEM, :IMAGEM, :DATAENVIO,:UNIDADE,:URL)",array(
":TITULO"=>$titulo,
":MENSAGEM"=>$mensagem,
":IMAGEM"=> $base_url.$new_name,
":DATAENVIO"=>$mysqldate,
":UNIDADE"=>"Praia da Costa",
":URL"=>null
));
$stmt->execute();
if($resultado){
$data['sucesso'] = true;
$data['mensagem'] = 'Enviado com sucesso';
}else{
$data['sucesso'] = false;
$data['mensagem'] = 'Erro ao enviar noticia!';
}
} else {
$data['sucesso'] = false;
$data['mensagem'] = 'Erro ao fazer upload!';
}
}
}
echo json_encode($data);
?>
Call Ajax
$('#btnenviarnoticia').click(function() {
$( "#formnoticia" ).submit();
});
var options = {
url: 'db/enviarnoticia.php',
type: 'POST' ,
dataType: 'json',
uploadProgress: function(event, position, total, percentComplete) {
$('#progressonoticia').show();
$('#progressonoticia').css('width', percentComplete+'%');
},
success: function(data) {
var resdata = data;
if (resdata['sucesso']) {
location.reload();
}else{
console.log(resdata['mensagem']);
}
},
error: function(data) {
console.log(data);
},
clearForm: true
};
$('#formnoticia').ajaxForm(options);
You only have the php code. It would be nice to put the javascript code that makes the ajax request.
– Juven_v
@Juven_v I put
– Igor Oliveira