Boa tarde Pessoal do PAP, tenho uma dúvida e espero que consigam me ajudar, pois já fiz 30 por 1 linha e não consegui resolver isto.
É o seguinte, no ficheiro "index.php" tenho um formulário feito em PHP que faz o envio de e-mail (utilizado normalmente nos sites na parte dos contactos), e quando clico no botão "Enviar mensagem" faz através de $.ajax. Consigo passar os valores que estão no formulário para a função que está no ficheiro "function.php" e queria passar os erros de validação e não consigo.
No ficheiro index.php tenho assim no $.ajax
Código :
e no ficheiro function.php está assim (está incompleto pois já andei a alterar o código),
Código :
a minha pergunta é, como é que consigo enviar os erros que estão no ficheiro function.php em array para o index.php recebendo-o no ajax.
Aguardo a vossa ajuda / dica.
Cumps.
É o seguinte, no ficheiro "index.php" tenho um formulário feito em PHP que faz o envio de e-mail (utilizado normalmente nos sites na parte dos contactos), e quando clico no botão "Enviar mensagem" faz através de $.ajax. Consigo passar os valores que estão no formulário para a função que está no ficheiro "function.php" e queria passar os erros de validação e não consigo.
No ficheiro index.php tenho assim no $.ajax
Código :
$.ajax({
url: "/imports/function-email.php",
data: $('#form_enviar_mensagem').serialize() + "&action=send_email",
type: 'POST',
success: function (data) {
setTimeout(function(){
$('#alert_success').fadeIn();
setTimeout(function(){
$('#alert_success').fadeOut();
}, 3000);
}, 1000);
$('#alert_success').show();
$('#alert_danger').hide();
$('#form_enviar_mensagem')[0].reset();
},
error: function(data){
setTimeout(function(){
$('#alert_danger').fadeIn();
setTimeout(function(){
$('#alert_danger').fadeOut();
}, 3000);
}, 1000);
$('#alert_danger').show();
$('#alert_success').hide();
$('#form_enviar_mensagem')[0].reset();
},
});
return false;
});
url: "/imports/function-email.php",
data: $('#form_enviar_mensagem').serialize() + "&action=send_email",
type: 'POST',
success: function (data) {
setTimeout(function(){
$('#alert_success').fadeIn();
setTimeout(function(){
$('#alert_success').fadeOut();
}, 3000);
}, 1000);
$('#alert_success').show();
$('#alert_danger').hide();
$('#form_enviar_mensagem')[0].reset();
},
error: function(data){
setTimeout(function(){
$('#alert_danger').fadeIn();
setTimeout(function(){
$('#alert_danger').fadeOut();
}, 3000);
}, 1000);
$('#alert_danger').show();
$('#alert_success').hide();
$('#form_enviar_mensagem')[0].reset();
},
});
return false;
});
e no ficheiro function.php está assim (está incompleto pois já andei a alterar o código),
Código :
<?php
if (isset ( $_POST ['action'] ) && ! empty ( $_POST ['action'] )) {
$action = $_POST ['action'];
switch ($action) {
case 'send_email': send_email();break;
}
}
function send_email(){
if( isset( $_POST ) && !empty( $_POST )){
$to = 'your@email.pt';
$subject = 'Mensagem enviada pelo site'."\r\n";
$errors = array
(
'nome' => 'Por favor, insira um nome',
'email' => 'Por favor, Insira um e-mail válido!',
'mensagem' => 'É obrigatório escrever uma mensagem'
);
if(isset($_POST['nome']) || empty($_POST['nome'])){
// Mensagem de erro - Nome;
// array_push($errors_null,array('alert'=>$errors['nome']));
}else{
$message = 'Nome:' . "". $_POST['nome'] . "\r\n";
}
if(($_POST['telefone']) != ''){
$message .= 'Telefone:'." ". $_POST['telefone'] . "\r\n";
}
if(!isset( $_POST['email']) || empty($_POST['email']) || !filter_var(trim( $_POST['email']), FILTER_VALIDATE_EMAIL)){
// Mensagem de erro - E-mail;
//array_push($errors_null,array('alert'=>$errors['email']));
}else{
$message .= 'E-mail:'."". $_POST['email']. "\r\n";
}
if(!isset($_POST['msg']) || empty( $_POST['msg'])){
// Mensagem de erro - corpo da mensagem;
//array_push($errors_null,array('alert'=>$errors['mensagem']));
}else{
$message .= 'Mensagem:'. " ". $_POST['msg'] . "\r\n";
}
$headers = "Content-Type:text/plain;charset=UTF-8" . "\r\n";
$headers .= 'From:'. $_POST['email'] . "\r\n";
$headers .= 'Cc:'. $_POST['email'] . "\r\n";
}}?>
if (isset ( $_POST ['action'] ) && ! empty ( $_POST ['action'] )) {
$action = $_POST ['action'];
switch ($action) {
case 'send_email': send_email();break;
}
}
function send_email(){
if( isset( $_POST ) && !empty( $_POST )){
$to = 'your@email.pt';
$subject = 'Mensagem enviada pelo site'."\r\n";
$errors = array
(
'nome' => 'Por favor, insira um nome',
'email' => 'Por favor, Insira um e-mail válido!',
'mensagem' => 'É obrigatório escrever uma mensagem'
);
if(isset($_POST['nome']) || empty($_POST['nome'])){
// Mensagem de erro - Nome;
// array_push($errors_null,array('alert'=>$errors['nome']));
}else{
$message = 'Nome:' . "". $_POST['nome'] . "\r\n";
}
if(($_POST['telefone']) != ''){
$message .= 'Telefone:'." ". $_POST['telefone'] . "\r\n";
}
if(!isset( $_POST['email']) || empty($_POST['email']) || !filter_var(trim( $_POST['email']), FILTER_VALIDATE_EMAIL)){
// Mensagem de erro - E-mail;
//array_push($errors_null,array('alert'=>$errors['email']));
}else{
$message .= 'E-mail:'."". $_POST['email']. "\r\n";
}
if(!isset($_POST['msg']) || empty( $_POST['msg'])){
// Mensagem de erro - corpo da mensagem;
//array_push($errors_null,array('alert'=>$errors['mensagem']));
}else{
$message .= 'Mensagem:'. " ". $_POST['msg'] . "\r\n";
}
$headers = "Content-Type:text/plain;charset=UTF-8" . "\r\n";
$headers .= 'From:'. $_POST['email'] . "\r\n";
$headers .= 'Cc:'. $_POST['email'] . "\r\n";
}}?>
a minha pergunta é, como é que consigo enviar os erros que estão no ficheiro function.php em array para o index.php recebendo-o no ajax.
Aguardo a vossa ajuda / dica.
Cumps.