Всем, привет. Ребят, подскажите, пожалуйста.
Есть у меня такая форма обратной связи
<form action="<?=POST_FORM_ACTION_URI?>" name="form" id="form">
<label>Имя</label>
<input type="text" name="person_name">
<label>Сообщение</label>
<textarea name="message"></textarea>
<input type="submit" class="btn" value="Отправить">
</form>
Обработка ее идет через ajax + Jquery.
<script>
$('#form').on('submit', function(e){
e.preventDefault();
var that = this;
$.ajax({
type: 'POST',
url: '/ajax/form_send.php',
data: $("#form").serialize(),
dataType: 'json',
success: function(result){
if (result.status=='success'){
$(that).hide();
}else{
if (!result.message_name) {
\\выводим ошибку
}else{
\\убираем ошибку
}
if(!result.message_text){
\\выводим ошибку
}else{
\\убираем ошибку
}
}
}
});
});
</script>
И ajax
<?
if(!empty($_REQUEST['person_name']) && !empty($_REQUEST['message'])){
$result['status'] = 'success';
$result['message'] = 'Ваше сообщение отправлено';
}else{
if(empty($_REQUEST['person_name'])){
$result['message_name'] = false;
}else{
$result['message_name'] = true;
}
if(empty($_REQUEST['message'])){
$result['message_text'] = false;
}else{
$result['message_text'] = true;
}
$result['status'] = 'error';
$result['message'] = 'Ошибка';
};
echo json_encode($result);
?>
Проблема вот в чем. Если человек отправляет форму - без ошибок - с первого раза - она спустся несколько секунд на почту падает.
Но если человек заполнил форму, нажал самбит - не заполнил обязательное поле - вышла ошибка - он поправил - отправил форму.
И сообщение из этой формы, в этом случае, приходит только после того как была перезагружена страница.
В первом случае работает корректно.
Не могу понять в чем проблема. В ajax.php или в скрипте.