Показать сообщение отдельно
  #10 (permalink)  
Старый 13.10.2015, 23:09
Интересующийся
Отправить личное сообщение для markfostel Посмотреть профиль Найти все сообщения от markfostel
 
Регистрация: 21.09.2015
Сообщений: 17

Сообщение от laimas Посмотреть сообщение
В обработчике ancybox в строках 20-33 находятся условия такой проверки полей. Только нужно добавить же вывод сообщения и для поле mesg, если оно не заполнено, то тоже типа

$('#bthrow_error_mesg').fadeIn(1000).html('Заполните....');


в строку 33, и добавив в форму

<div id="bthrow_error_mesg"></div>


Ну и на сервере

if ($_POST['mesg'] == "")
{
    $errors['mesg'] = 'Заполните ... ';
}


Только не понятно, зачем возвращать на клиента сообщения о не заполнении полей, если клиент и сам их с успехом формирует, достаточно возвращать наличие (признак) ошибки в поле.

И так не проверяют if ($_POST['mesg'] == ""), так как пробел уже не равен пустой строке, но в тоже время это ничто. Нужно убирать крайние пробелы, и лишь затем проверять пустая ли строка:

$_POST = array_map('trim', $_POST);

//А теперь можно и

if ($_POST['name'] == "")
.....

Получается, так? Код:

HTML:

<h2>Обратная связь</h2>
					    <div class="comment"></div>
					    <form method="post" id="form-feedback" >
					        <input type="text" placeholder="Ваше имя" name="name" id="name" class="input_text"/>
					        <div id="bthrow_error_name"></div>
					        <br>
					        <input type="text" placeholder="Контактный телефон" name="phone" id="phone" class="input_text"/>
					        <div id="bthrow_error_phone"></div>

					         

					        <input class="button submit_callback_button_1" type="submit" value="Отправить заявку" />
					        <div id="bthrow_error_mesg"></div>
					    </form>

					    <span class="under-form"></span>


JS:
$('#phone').mask('0 (000) 000-00-00');
					$("#form-feedback").submit(function(event) {
			 
			        if ($('#name').val() == "")
			            {
			                $('#bthrow_error_name').fadeIn(1000).html('Представьтесь, пожалуйста.');
			            }
			        else if 
			        	($('#phone').val() == "")
			            {
			                $('#bthrow_error_name').empty();
			                $('#bthrow_error_phone').fadeIn(1000).html('Как с Вами связаться?');
			            }
			        else if 
			        	($('#mesg').val() =="")
			        	{
			        		$('#bthrow_error_mesg').fadeIn(1000).html('Пожалуйста, напишите сообщение');

			        	}

			        else
			            {
			                var postForm = {
			                    'name'  : $('#name').val(),
			                    'phone'  : $('#phone').val()
			                    'mesg'  : $('#mesg').val()
			                     
			                };
			 
			                $.ajax({
			                    type        : 'POST',
			                    url         : 'feedback.php',
			                    data        : postForm,
			                    dataType    : 'json',
			                    success     : function(data)
			                        {
			                            if (!data.success)
			                                {
			                                    if (data.errors.name)
			                                        {
			                                            $('.throw_error').fadeIn(1000).html(data.errors.name);
			                                        }
			                                }
			                            else
			                                {
			                                    $('#form-feedback').fadeIn(1000).html('<p>' + data.posted + '</p>');
			                                }
			                        }
			                });
			            }
			 
			        event.preventDefault();
			 
			    });


PHP:


<?php

$errors = array();
$form_data = array();

if ($_POST['name'] == "")
    {
        $errors['name'] = 'Введите Ваше имя';
    }

if ($_POST['phone'] == "")
{
    $errors['name'] = 'Введите Ваш телефон';
}

if ($_POST['mesg'] == "")
{
$errors['mesg'] = 'Пожалуйста, напишите сообщение';
}



if (!empty($errors))
    {
        $form_data['success'] = false;
        $form_data['errors']  = $errors;
    }
else
    {
        $message = "<h1>Заявка с сайта ".$_SERVER['HTTP_HOST']."</h1>";

        foreach($_POST as $k => $v)
            {
                $message .= $k.": ".$v."<br />";
            }

        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=utf8' . "\r\n";

         

        if (mail('xdd24@yandex.ru', 'Заявка с сайта '.$_SERVER['HTTP_HOST'], $message, $headers))
            {
                $form_data['success'] = true;
                $form_data['posted'] = 'Благодарим за обращение! Наши менеджеры свяжутся с Вами в ближайшее время';
            }
        else
            {
                $errors['name'] = 'Ошибка отправки письма';
            }
    }


echo json_encode($form_data);

?>
Ответить с цитированием