Как сделать, чтобы после нажатия "Отправить" на странице с формой открывалось модальное окно?

Тема в разделе "PHP", создана пользователем Владислав1983, 16 фев 2016.

  1. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Как сделать, чтобы после нажатия "Отправить" на странице с формой обратной связи открывалось красивое всплывающее модальное окно типа fancybox, sweetalert с сообщениями об ошибках или, правильности введенных данных и отправкой данных на почту? Форма и проверка данных формы с отправкой на почту находятся на одной странице. Код проверки написан на php. Я пробовал вставлять скрипт fancybox и вызывать через submit, но при любых данных выдается пустое окно и ничего больше не происходит. Видимо, данные через скрипт не передаются. Я так понимаю, чтобы сделать со всплывающими окнами нужно проверку данных с отправкой на почту тоже писать на javascript и с использованием, например, красивого окна sweetalert? Нельзя совместить проверку на php и вывод сообщений в модальном окне?
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    Из всего сообщения где нет ни строчки кода, могу ответить на один вопрос:
    Можно.
     
  3. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Извиняюсь за задержку. Не было времени добраться до моего компьютера.

    Высылаю код страницы контактов, где находятся форма обратной связи и код проверки и вывода данных для отправки на почту
    Сайт http://f0005424.xsph.ru/kontakty.php

    Код
    Код:
    <?php
        $_POST['fio'];
        $_POST['tel'];
        $_POST['model'];
        $_POST['email'];
        $_POST['comment'];
        $ip=$_SERVER['REMOTE_ADDR'];           
        if (isset($_POST['fio'])) {$fio = $_POST['fio'];}
        if (isset($_POST['tel'])) {$tel = $_POST['tel'];}
        if (isset($_POST['model'])) {$model = $_POST['model'];}
        if (isset($_POST['email'])) {$email = $_POST['email'];}
        if (isset($_POST['comment'])) {$comment = $_POST['comment'];}
        session_start();
    
        if($_POST['submit']){
            if($_POST['res'] == $_SESSION['res']){
                $headers  = "MIME-Version: 1.0\r\n";
                $headers = "Content-type: text/html; charset=utf-8\r\n";
                $to = "[email protected]";
                $headers .= "From: Письмо с сайта ЛайтГласс\r\n";
                $subject = "Пришло письмо с вашего сайта о прожаже защитных стекол";
                $headers .= "X-Mailer: My Send E-mail\r\n";
               
                $message .= "<html>\n";
                $message .= "<body style=\"font-family:Arial font-size:5px\">\n";
                $message .= "<table cellpadding=\"9\" cellspacing=\"2\" width=\"100%\">";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>ФИО:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$fio</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Телефон:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$tel</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Модель iPhone:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$model</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>E-mail:</b></font></td>";
                if ($email != "") {$message .="<td align=\"left\" height=\"24\" width=\"500\" bgcolor=\"#e8f9fc\"><font size=2>$email</font></td>";} else
                {$message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2 color=#ed1c24>Не указан</font></td>";}
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Комментарии:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$comment</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>IP-адрес заказчика:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$ip</font></td>";
                $message .="</tr>";
                $message .="</table>";
                $message .= "</body>\n";
                $message .= "</html>\n";
    
                if(mail($to, $subject, $message, $headers)){
                    $_SESSION['mes'] = '<p>Письмо отправлено!</p>';
                    header("Location: yandex.ru");
                    exit();
                }else{
                    $_SESSION['mes'] = '<p>Ошибка!</p>';
                    header("Location: index.php");
                    exit();
                }
            }else{
                $_SESSION['mes'] = '<p>Дан неверный ответ!</p>';
                header("Location: mail.ru");
                exit();
            }
        }
    
        $a = rand(1,10);
        $b = rand(1,10);
        $_SESSION['res'] = $a + $b;
        ?>
    <!DOCTYPE html>
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <meta name="Robots" content="all">
                <meta HTTP-EQUIV="no-cache">
                <meta http-equiv="Content-Language" content="ru">
                <meta name="keywords" content="">
                <meta name= "description" content="Контакты ООО &quot;ЛайтГласс&quot;">
                <meta name="author"    content="Контакты ООО &quot;ЛайтГласс&quot;">
                <title>Контакты ООО "ЛайтГласс"</title>
                <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>   
                <link rel="stylesheet" href="css/style.css">
                <link rel="icon" href="/favicon.ico" type="image/ico">
                <link rel="shortcut icon" href="/img/favicon.ico" type="image/ico">
                <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
                <link href='https://fonts.googleapis.com/css?family=Play:400,700&subset=latin,cyrillic,latin-ext,cyrillic-ext' rel='stylesheet' type='text/css'>
                <script type="text/javascript" src="scripts/jquery.js"></script>
                <link rel="stylesheet" type="text/css" href="css/animate.css" />
            </head>
            <body>
                <section id="content">
                    <header>
                        <div id="header-left">
                            <div>
                                <a href="index.php"><img src="img/logo.png" alt="Защитные стекла для iPhone ООО &quot;ЛайтГласс&quot;"></a></p>
                            </div>
                        </div>
                        <div id="header-right"><span id="kodg">+ 7&nbsp;(905)</span>&nbsp;&nbsp;<span id="nomer">577-20-25</span></div>
                    </header>
                    <nav>
                        <ul>
                            <li><a id="nav-1" href="index.php"><img src="img/home.png" alt="Защитные стекла для iPhone ООО &quot;ЛайтГласс&quot;"></a></li>
                            <li><a id="nav-2" href="karta-saita.php"><img src="img/sitemap.png" alt="Карта сайта ООО &quot;ЛайтГласс&quot;"></a></li>
                            <li><a id="nav-3" href="o-zashitnyh-steklah.php"><span>О&nbsp;защитных&nbsp;стеклах</span></a></li>
                            <li><a id="nav-4" href="ustanovka-zashitnogo-stekla.php">Установка&nbsp;защитного&nbsp;стекла</a></li>
                            <li><a id="nav-5" href="prais-list.php">Прайс-лист</a></li>
                            <li><a id="nav-6" href="oplata-i-dostavka.php">Оплата&nbsp;и&nbsp;доставка</a></li>
                            <li><a id="navactive-7" href="kontakty.php">Контакты</a></li>
                        </ul>
                    </nav>
                    <div class="wow fadeIn" data-wow-delay="0s">
                        <div id="main">
                            <h1 id="zagstr">Контакты</h1>
                            <article>
                                ООО «ЛайтГласс»<br>
                                Тел:  +7 (905) 577-20-25<br>
                                E-mail: <a href="mailto:[email protected]">[email protected]</a><br>
                                Сайт: <a target="_blank" href="index.php">www.lglass.ru</a><br><br>
                                <form id="kont" name="kont" action="" enctype="multipart/form-data" method="post">
                                    <input class="pole" required id="fio" name="fio" type="text" placeholder="Ваше ФИО" maxlength="100"/>&nbsp;<span id="zvezda">*</span>
                                    <br><input class="pole" required id="tel" name="tel" type="text" placeholder="Ваш телефон" onkeypress="if(event.keyCode<48 || event.keyCode > 57)event.returnValue=false" maxlength="30"/>&nbsp;<span id="zvezda">*</span>
                                    <br><input class="pole" id="email" name="email" type="email" placeholder="Ваш e-mail" maxlength="50"/>
                                    <br><select id="model" name="model" required>
                                        <option value="" disabled selected style='display:none;'>Выберите модель iPhone из списка</option>
                                        <option value="iPhone 4">iPhone 4</option>
                                        <option value="iPhone 4S">iPhone 4S</option>
                                        <option value="iPhone 5">iPhone 5</option>
                                        <option value="iPhone 5c">iPhone 5c</o</option>
                                        <option value="iPhone 5s">iPhone 5s</option>
                                        <option value="iPhone 6">iPhone 6</option>
                                        <option value="iPhone 6S">iPhone 6S</option>
                                        <option value="iPhone 6 Plus">iPhone 6 Plus</o</option>
                                        <option value="iPhone 6S Plus">iPhone 6S Plus</o</option>
                                    </select>&nbsp;<span id="zvezda">*</span>
                                    <br><textarea required id="comment" name="comment" placeholder="Комментарии" maxlength="5000"></textarea>&nbsp;<span id="zvezda">*</span>
                                    <br><?php echo $a. ' + ' .$b. ' = ';?><input type="text" name="res" />
                                    <br><input id="go" name="submit" type="submit" value="Отправить"/>
                                    <br><span id="zvezda">*</span><span id="op">&nbsp;-&nbsp;Обязательные поля</span>
                                </form>
                                <?php
                                echo $_SESSION['mes'];
                                unset($_SESSION['mes']);
                                ?>
                            </article>
                        </div>
                    </div>
                    <footer>
                        <div id="footer-left">ООО "Лайт&nbsp;Гласс"&nbsp;©&nbsp;2016</div>
                        <div id="footer-right">+ 7&nbsp;(905)&nbsp;577-20-25, [email protected]</div>
                    </footer>
                </section>
                <script src="scripts/wow.js"></script>
                <script>
                    var wow = new WOW(
                        {
                            boxClass: 'wow',
                            animateClass: 'animated',
                            offset: 0,
                            mobile: false
                            }
                    );
                    wow.init();
                </script>
            </body>
        </html>    
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    как-то так:
     
  5. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    А что это за файл. Брандvаузер windows ругается.
     
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    архив очевидно
     
  7. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Работает, в целом, хорошо.
    1) При нажатии "Отправить" страница перезагружается. А возможно ли сделать, чтобы она не перезагружалась, а только появлялось окно с сообщением? И после нажатия "Ок" в окне просто закрывалось окно без перезагрузки страницы.
    2) В окне сообщений повторяется 2 раза сообщение. Как одно из них убрать, например, нижнее со сдвигом кнопки "Ок" и уменьшением высоты окна? В примерах sweetalert 2 разных сообщения. А здесь получается, я меняю в коде и оно 2 раза меняется.
     
  8. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    Возможно.
    Оно не повторяется. просто в обоих случаях я вставляю туда один текст. На сайте sweetalert написано как это сделать :Smile:
     
    Последнее редактирование: 23 фев 2016
  9. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    1) А вы знаете как?
    2) Как это исправить? Ненормально выглядит, когда в 2 местах один и то же текст. Выглядит, как повтор. Здесь либо оставлять одно сообщение, либо, одно из них писать другим текстом. Лучше оставить одно. Это возможно?
     
  10. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    1) По поводу вывода 2 одинаковых текстов в сообщении я разобрался. Я сделал 2 надпись с другим текстом. Правда, мне хотелось совсем убрать 2 текст, но выводится стандартное сообщение. Его, возможно, нужно убрать из скрипта. Как его убрать?
    2) По поводу вывода сообщения без перезагрузки страницы я попробовал, но что-то оно совсем не работает. Еще у меня есть какие-то проблемы с приходом письма на почту. Я изменил капчу, но и со старой капчей письма приходили странным образом. Я проверил последний раз отправил первое сообщение с Хрома - оно пришло. С браузеров IE и Мозилла - не пришли. Отправил второе с Хрома - тоже не дошло. Хотя при этом сообщение в окне выводится верно. Если числа введены правильно, то успешное сообщение, если нет, то сообщение о неправильности ввода чисел. Я версию на бесплатном хостинге. Возможно, есть ограничения по отправленным письмам в день. Может быть, письма определяются как СПАМ, но на mail.ru их даже в СПАМЕ нет. Я говорю об этом, т.к. когда тестировал другую форму обратной связи на Outlook, то они попадали в СПАМ, если в проверке письма в $subject и $headers (от кого) текст был на кириллице. Только на латинице в СПАМ не попадал. Но в mail.ru письма в папку СПАМ не попадают. Пробовал писать на латинице, но письма продолжали не доходить. Я высылаю последний код, где видно, насколько правильно или не правильно сделана проверка данных и отправка на почту, а также скрипт, позволяющий вывести сообщение без перезагрузки страницы:

    HTML:
    <?php
        $ip=$_SERVER['REMOTE_ADDR'];           
        if (isset($_POST['fio'])) {$fio = $_POST['fio'];}
        if (isset($_POST['tel'])) {$tel = $_POST['tel'];}
        if (isset($_POST['model'])) {$model = $_POST['model'];}
        if (isset($_POST['email'])) {$email = $_POST['email'];}
        if (isset($_POST['comment'])) {$comment = $_POST['comment'];}
    
        session_start();
        $flashBag = array();
    
        if(isset($_POST['submit'])) {
            if($_POST['res'] == $_SESSION['res']){
                $headers  = "MIME-Version: 1.0\r\n";
                $headers = "Content-type: text/html; charset=utf-8\r\n";
                $to = "[email protected]";
                $headers .= "From: Письмо с сайта ЛайтГласс\r\n";
                $subject = "Пришло письмо с вашего сайта о прожаже защитных стекол";
                $headers .= "X-Mailer: My Send E-mail\r\n";
    
                $message = "<html>\n";
                $message .= "<body style=\"font-family:Arial font-size:5px\">\n";
                $message .= "<table cellpadding=\"9\" cellspacing=\"2\" width=\"100%\">";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>ФИО:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$fio</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Телефон:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$tel</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Модель iPhone:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$model</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>E-mail:</b></font></td>";
                if ($email != "") {$message .="<td align=\"left\" height=\"24\" width=\"500\" bgcolor=\"#e8f9fc\"><font size=2>$email</font></td>";} else
                {$message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2 color=#ed1c24>Не указан</font></td>";}
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>Комментарии:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$comment</font></td>";
                $message .="</tr>";
                $message .="<tr>";
                $message .="<td align=\"left\" height=\"24\" width=\"200\" bgcolor=\"#1ec5e0\"><font size=2 color=#ffffff><b>IP-адрес заказчика:</b></font></td>";
                $message .="<td align=\"left\" height=\"24\" width=\"400\" bgcolor=\"#e8f9fc\"><font size=2>$ip</font></td>";
                $message .="</tr>";
                $message .="</table>";
                $message .= "</body>\n";
                $message .= "</html>\n";
                $result = mail($to, $subject, $message, $headers);
    
                if($result){
                    $flashBag = array(
                        'msg' => 'Ваше письмо отправлено!',
                        'msg2' => 'В ближайшее время с вами свяжется наш специалист.',
                        'status' => 'success',
                    );       
                }else{
                    $flashBag = array(
                        'msg' => 'Ошибка!',                   
                        'msg2' => 'Пожалуста, исправте данные!',
                        'status' => 'error',
                    );
                }
            }else{
                $flashBag = array(
                    'msg' => 'Дан неверный ответ!',
                    'status' => 'warning',
                );
            }
        }
    
               
        if(count($_POST)>0){
            if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] === $_POST['keystring']){
                $flashBag = array(
                            'msg' => 'Ваше письмо отправлено!',
                            'msg2' => 'В ближайшее время с вами свяжется наш специалист.',
                            'status' => 'success',
                        );       
            }else{
                $flashBag = array(
                        'msg' => 'Вы ввели неверное число!',
                        'msg2' => 'Пожалуста, введите правильное число с картинки!',
                        'status' => 'warning',
                    );
            }
        }
        unset($_SESSION['captcha_keystring']);
    ?>
    <!DOCTYPE html>
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <meta name="Robots" content="all">
                <meta HTTP-EQUIV="no-cache">
                <meta http-equiv="Content-Language" content="ru">
                <meta name="keywords" content="">
                <meta name= "description" content="Контакты ООО &quot;ЛайтГласс&quot;">
                <meta name="author"    content="Контакты ООО &quot;ЛайтГласс&quot;">
                <title>Контакты ООО "ЛайтГласс"</title>
                <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>   
                <link rel="stylesheet" href="css/style.css">
                <link rel="icon" href="/favicon.ico" type="image/ico">
                <link rel="shortcut icon" href="/img/favicon.ico" type="image/ico">
                <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
                <link href='https://fonts.googleapis.com/css?family=Play:400,700&subset=latin,cyrillic,latin-ext,cyrillic-ext' rel='stylesheet' type='text/css'>
                <script type="text/javascript" src="scripts/jquery.js"></script>
                <script type="text/javascript" src="scripts/sweetalert.min.js"></script>
                <link rel="stylesheet" type="text/css" href="css/animate.css" />
                <link rel="stylesheet" href="css/sweetalert.css" type="text/css" media="screen" />
                <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
                <script type="text/javascript" src="scripts/maskatel.js"></script>
                <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                <script type="text/javascript">
                   jQuery(function($){
                   $("#tel").mask("+7 (999) 999-99-99");
                   });
                </script>
                <script>
                    function AjaxFormRequest(result_id,formMain,url) {
                                jQuery.ajax({
                                    url:     url,
                                    type:     "POST",
                                    dataType: "html",
                                    data: jQuery("#"+formMain).serialize(),
                                    success: function(response) {
                                    document.getElementById(result_id).innerHTML = response;
                                },
                                error: function(response) {
                                document.getElementById(result_id).innerHTML = "<p>Возникла ошибка при отправке формы. Попробуйте еще раз</p>";
                                }
                             });
    
                             $(':input','#formMain')
                                .not(':button, :submit, :reset, :hidden')
                                .val('')
                                .removeAttr('checked')
                                .removeAttr('selected');
                    }
                </script>
            </head>
            <body <?php if (!empty($flashBag) && isset($flashBag['msg'])) { ?> onload="swal('<?php echo $flashBag['msg']; ?>', '<?php echo $flashBag['msg2']; ?>', '<?php echo $flashBag['status']; ?>');"<?php } ?>>
                <section id="content">
                    <header>
                        <div id="header-left">
                            <div>
                                <a href="index.php"><img src="img/logo.png" alt="Защитные стекла для iPhone ООО &quot;ЛайтГласс&quot;"></a></p>
                            </div>
                        </div>
                        <div id="header-right"><span id="kodg">+ 7&nbsp;(905)</span>&nbsp;&nbsp;<span id="nomer">577-20-25</span></div>
                    </header>
                    <nav>
                        <ul>
                            <li><a id="nav-1" href="index.php"><img src="img/home.png" alt="Защитные стекла для iPhone ООО &quot;ЛайтГласс&quot;"></a></li>
                            <li><a id="nav-2" href="karta-saita.php"><img src="img/sitemap.png" alt="Карта сайта ООО &quot;ЛайтГласс&quot;"></a></li>
                            <li><a id="nav-3" href="o-zashitnyh-steklah.php"><span>О&nbsp;защитных&nbsp;стеклах</span></a></li>
                            <li><a id="nav-4" href="ustanovka-zashitnogo-stekla.php">Установка&nbsp;защитного&nbsp;стекла</a></li>
                            <li><a id="nav-5" href="prais-list.php">Прайс-лист</a></li>
                            <li><a id="nav-6" href="oplata-i-dostavka.php">Оплата&nbsp;и&nbsp;доставка</a></li>
                            <li><a id="navactive-7" href="kontakty.php">Контакты</a></li>
                        </ul>
                    </nav>
                    <div class="wow fadeIn" data-wow-delay="0s">
                        <div id="main">
                            <h1 id="zagstr">Контакты</h1>
                            <article>
                                ООО «ЛайтГласс»<br>
                                Тел:  +7 (905) 577-20-25<br>
                                E-mail: <a href="mailto:[email protected]">[email protected]</a><br>
                                Сайт: <a target="_blank" href="index.php">www.lglass.ru</a><br><br>
                                <form id="formMain" name="formMain" action="" method="post">
                                    <input class="pole" required id="fio" name="fio" type="text" placeholder="Ваше ФИО" maxlength="100"/>&nbsp;<span id="zvezda">*</span>
                                    <br><input class="pole" required id="tel" name="tel" type="text" placeholder="Ваш телефон" onkeypress="if(event.keyCode<48 || event.keyCode > 57)event.returnValue=false" maxlength="30"/>&nbsp;<span id="zvezda">*</span>
                                    <br><input class="pole" id="email" name="email" type="email" placeholder="Ваш e-mail" maxlength="50"/>
                                    <br><select id="model" name="model" required>
                                        <option value="" disabled selected style='display:none;'>Выберите модель iPhone из списка</option>
                                        <option value="iPhone 4">iPhone 4</option>
                                        <option value="iPhone 4S">iPhone 4S</option>
                                        <option value="iPhone 5">iPhone 5</option>
                                        <option value="iPhone 5c">iPhone 5c</o</option>
                                        <option value="iPhone 5s">iPhone 5s</option>
                                        <option value="iPhone 6">iPhone 6</option>
                                        <option value="iPhone 6S">iPhone 6S</option>
                                        <option value="iPhone 6 Plus">iPhone 6 Plus</o</option>
                                        <option value="iPhone 6S Plus">iPhone 6S Plus</o</option>
                                    </select>&nbsp;<span id="zvezda">*</span>
                                    <br><textarea required id="comment" name="comment" placeholder="Комментарии" maxlength="5000"></textarea>&nbsp;<span id="zvezda">*</span>
                                    <br><div id="captcha"><img src="./captcha?<?php echo session_name()?>=<?php echo session_id()?>"><input id="cap" type="text" name="keystring">
                                    <br><input id="button" name="button" type="button" onclick="AjaxFormRequest('messegeResult', 'formMain', 'kontakty.php')" value="Отправить"/></div>
                                    <br><span id="zvezda">*</span><span id="op">&nbsp;-&nbsp;Обязательные поля</span>
                                </form>
                            </article>
                        </div>
                    </div>
                    <footer>
                        <div id="footer-left">ООО "Лайт&nbsp;Гласс"&nbsp;©&nbsp;2016</div>
                        <div id="footer-right">+ 7&nbsp;(905)&nbsp;577-20-25, [email protected]</div>
                    </footer>
                </section>
               
                <script src="scripts/wow.js"></script>
                <script>
                    var wow = new WOW(
                        {
                            boxClass: 'wow',
                            animateClass: 'animated',
                            offset: 0,
                            mobile: false
                            }
                    );
                    wow.init();
                </script>
            </body>
        </html>    
     
  11. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    1. плохо разбирались, вместо второго параметра надо поставить null.
    2. рабочий вариант без перезагрузки страницы

    только я не заморачивался с капчей, т.к. если первый раз пришла ошибка, то надо перегенеривать капчу заново иначе она будет неверной всё время, пока не перезагрузится страница.

    письма у вас не отправляются, т.к. у вас косяк с сэндмэйлом, через который вы отправляете письма. надо читать логи и смотреть какой ответ возвращается после отправки от сервера.
     
  12. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Спасибо за вывод сообщения без перезагрузки страницы. В этом плане все работает, но при любом значении капчи постоянно приходит сообщение "Дан неверный ответ" и данные не отправляются на почту. Пробовал вставлять другую капчу, пробовал почту другую ставить (яндекс, гугл), пробовал убирать строки $headers = "MIME-Version: 1.0\r\n"; и $headers .= "X-Mailer: My Send E-mail\r\n";, но все равно приходит ошибка.

    Пробовал убирать скрипт, убирающий перезагрузку страницы и условие if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { со строками

    echo json_encode($flashBag);
    http_response_code($code);
    header('Content-Type: application/json');

    , и выводится верное сообщение и письмо на почту высылается, но происходит самой собой перезагрузка страницы.

    Если скрипт, убирающий перезагрузку страницы, оставляю вместе с условием и строками, но убираю совсем капчу. то все равно выводится сообщение "Ошибка", хотя все данные верны. И при этом письмо на почту приходит.

    Все ли верно в скрипте, убирающем перезагрузку и верно ли сделана проверка данных формы и отправка на почту? Может быть номер кода неверен - 200. Выглядит так, как будто что бы ты не написал, всегда будет неверно. А может не нужно через эти коды 200 и 400 работать, а как-то иначе? Или что-то с моим бесплатным хостингом что-то не то? У Вас работает так как нужно форма?

    Что не так в этом коде? Почему он при любом раскладе выводит сообщение об ошибке и соответственно не отправляет письмо на почту?
     
  13. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    в предыдущем посте написано почему так.
    потому что чтобы сделать без перезагрузки, надо вернуть условие if (!empty($_POST['submit'])) {
    не при любом, а только при втором сабмите формы.

    хотите с перезагрузкой - берите предыдущий код
    с перезагрузкой - этот

    и оба нужно подпилить под ваши нужды) я ж не делаю вам лэндинг бесплатно) приложите немного голову и все доделаете.
     
    Последнее редактирование: 27 фев 2016
  14. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    А у вас выводится сообщение об отправке, даже при первом сабмите? У меня при первом сабмите, да и при любом другом выводится сообщение "Дан неверный ответ", хотя данные верные. В чем может быть проблема? Может в хостинге? Или в том, что он бесплатный и есть какие-то ограничения? Я выложил папку landing в том виде как вы ее мне прислали на хостинг и проверил. Ссылка на принтскрин, сделанный при первом сабмите http://f0005424.xsph.ru/Printscrin.jpg.

    А по поводу того, что если ошибся при вводе капчи, то не должно быть такого, что при повторном вводе без перезагрузки будет выдаваться сообщение "Дан неверный ответ".
     
  15. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    чтобы так было, надо динамически перегенеривать капчу. иначе будет ошибка. т.к. на странице у вас старая капча, а пхп уже в сессию вам записал новую.
     
  16. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Я понял, нужна кнопка "обновить"? Или вы имеете ввиду, что она автоматически обновляется, как только я дам неверный ответ, но без перезагрузки страницы?
    А что по поводу вывода постоянной ошибки "Дан неверный ответ"? Почему, даже при первой удачной попытки у меня выводится это сообщение и письмо на почту не приходит. Кстати, если я уберу проверку

    PHP:
    if ($_POST['res'] == $_SESSION['res']) {
    .....................
    .....................
    .....................
    } else {

      
    $flashBag = array(

      
    'msg' => 'Дан неверный ответ!',

      
    'status' => 'warning',

      );

      
    $code 400;

      }
    , то появится сообщение "Ошибка", но при этом письмо на почту придет.
     
  17. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Я не совсем понял код
    PHP:
    if (!empty($_POST['submit'])) {
    убирает перезагрузку или наоборот. Я его добавил и с ним происходит перезагрузка и скрипт sweetalert вообще не работает (не выскакивает никаких сообщений). А нужно, чтобы скрипт sweealert работал, выдавались правильные сообщения, не было перезагрузки страницы и приходили письма только при верном заполнении данных на почту. Что и где я должен поправить, чтобы все правильно работало?
    Может быть нужно включить проверку данных, т.к. таковых нет в обработчике - они проверяются только на наличие при помощи атрибута requered HTML5? Верно ли написан скрипт, убирающий перезагрузку страницы? Верен ли код проверки капчи и отправки на почту?
     
  18. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    оставляйте первый вариант с перезагрузкой и не парьтесь. Можете только сделать чтобы во всплывающем окне писался только один текст.
     
  19. Владислав1983

    Владислав1983

    Регистрация:
    27 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    На мой взгляд, если вывод сообщений происходит на той же страницы, то и перезагрузки быть не должно. А если ты описался, то после перезагрузки все заполненные поля обнуляться и все заново писать нужно. Такого варианта вообще быть не должно. Если вывод во всплывающем окне, то только на той же странице с формой. Это и не правильно с точки зрения потери данных и с точки зрения того, как все выглядит. Не происходит же перехода на другую страницу. А если не происходит, то и не должно быть перезарузки. Если делать перезагрузку, то тогда сообщения нужно выводить на другой странице без всплывающих окон. И будет просто открываться другая страница с выводом сообщением в зависимости от верного заполнения.