$.ajax({
type: 'post',
url: '<?php echo bloginfo('template_url'); ?>/lib/functions/submit-email.php',
data: 'name=' + name + '&email=' + email + '&comments=' + comments + '&mailto=' + mailto +'&admin=' + admin,
success: function(results) {
$('.contactform-main img.loaderIcon').fadeOut(600);
$('.contactform-main').fadeOut(600); // This will hide the form
$('div.response').html(<?php _e(results, 'lr_framework'); ?>);
}
}); // end ajax
Для пояснения, метод success
проверяет успешное выполнение AJAX, а не выполнение кода PHP.Поэтому, если вы хотите обработать ошибку PHP в своем коде jQuery, вам нужен индекс, показывающий это, например, True / False.Для этого вы можете использовать JSON .
PHP Пример:
$response = array();
$result = $mail->send();
$response['result'] = $result;
if($result) {
$response['message'] = 'The email was sent successfully!';
} else {
$response['message'] = 'There was an error. Please try again!';
}
echo json_encode($response);
jQuery AJAX Пример :
$.ajax({
url: "email.php",
global: false,
type: "POST",
data: ({text : "Your text here"}),
dataType: "json",
async:false,
success: function(data){
if(data["result"]) {
alert(data["message"]); // Success
} else {
alert(data["message"]); // Fail
}
}
}
)
Но вы должны вынуть окно ошибки / успеха из тега DIV формы, иначе оно тоже исчезнет.