Помощь Обратная связь - вывод сообщения после отправки

Тема в разделе "DLE", создана пользователем vovafrost, 21 окт 2013.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. vovafrost

    vovafrost Создатель

    Регистр.:
    19 май 2012
    Сообщения:
    30
    Симпатии:
    2
    DLE 10

    Делаю на в футер форму обратной связи для всех страниц на основе встроенной формы обратной связи ДЛЕ, форму настроил.
    Единственное необходимо вывести сообщение (html код) вместо формы после отправки сообщения.

    Код формы такой:

    Код:
    <div id="dle-content"><form method="post" id="sendmail" name="sendmail" action="">
    
    <div class="baseform" style="margin-left:12px">
    <table cellpadding="12" width="100%">
            
    <table class="tableform" style="border: 0px;margin: 0px;display: block;padding: 0px;">
     
            <tbody> 
                <tr>
                <td>
                    Ваше имя:<span class="impot">*</span>
                    <input type="text" maxlength="35" name="name" class="f_input" style="margin-right:30px;">
         
             
                    Ваш E-Mail:<span class="impot">*</span>
                    <input type="text" maxlength="35" name="email" class="f_input"></td>
            </tr>
               
            <tr> 
      <td>
          <select name="recip"><option selected="selected" value="1">Проект</option>
        <input type="text" value="Заказ с сайта" maxlength="45" name="subject" class="f_input">
              
              </td>
              </tr>
            <tr>
             
                <td><textarea name="message" style="width: 650px; height: 130px;" class="f_textarea"></textarea></td>
            </tr>
            <tr>
               
                <td>
                    <div style="width:200px; float:left; "><span id="dle-captcha"><img src="/engine/modules/antibot.php" alt="Включите эту картинку для отображения кода безопасности" border="0" title=""><br><a onclick="reload(); return false;" href="#" title="">обновить, если не виден код</a></span></div>
                    <div style="width:150px; margin-left:-70px; float:left;"><input type="text" maxlength="45" name="sec_code" style="width:115px" class="f_input"></div>
                    <div class="fieldsubmit" style="float:right; width:320px;">
           
     <button name="send_btn" class="foot_button" type="submit"><span>Отправить проект на оценку</span></button>
        </div>
               
               
                </td>
            </tr>
           
        </tbody></table>
     
    </div>
    <input name="send" type="hidden" value="send">
    </form><script language="javascript" type="text/javascript">
    <!--
    $(function(){
    
        $('#sendmail').submit(function() {
    
            if(document.sendmail.subject.value == '' || document.sendmail.message.value == '') {
    
                DLEalert('Заполните все необходимые поля', dle_info);
                return false;
    
            }
           
           
    
            var params = {};
            $.each($('#sendmail').serializeArray(), function(index,value) {
                params[value.name] = value.value;
            });
    
            params['skin'] = dle_skin;
    
            ShowLoading('');
    
            $.post(dle_root + "engine/ajax/feedback.php", params, function(data){
                HideLoading('');
                if (data) {
       
                    if (data.status == "ok") {
    
                    $('#dle-content').html(ytfytduytduytdud);
                       
       
                    } else {
    
                        if ( document.sendmail.sec_code ) {
                          document.sendmail.sec_code.value = '';
                          reload();
                        } else {
                            Recaptcha.reload();
                        }
    
                        DLEalert(data.text, dle_info);
    
                    }
       
                }
            }, "json");
    
          return false;
        });
    
    });
    
    function reload () {
    
        var rndval = new Date().getTime();
    
        document.getElementById('dle-captcha').innerHTML = '<img src="/engine/modules/antibot.php?rndval=' + rndval + '" border="0" width="120" height="50" alt="" /><br /><a onclick="reload(); return false;" href="#">обновить, если не виден код</a>';
    
    };
    //-->
    </script></div>
              
    В общем -то вопрос такой - что мне дописать в скрипте для вывода сообщения после отправки формы?
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.038
    А зачем всё так усложнять? Отключите капчу и делайте прямое обращение POST к обратной связи и всё.
    Либо используйте мой модуль отзывов/обратный звонок...
     
  3. krdma

    krdma Постоялец

    Регистр.:
    1 июн 2009
    Сообщения:
    89
    Симпатии:
    15
    Код:
    if (data.status == "ok") {
                  alert('Сообщение отправлено')
                    }
    Ну это в том случае если в ответе все-таки приходит статус.
     
  4. vovafrost

    vovafrost Создатель

    Регистр.:
    19 май 2012
    Сообщения:
    30
    Симпатии:
    2
    Что за модуль такой? Не знаком.

    Вообще капча конечно не нужна, но как защитить тогда от спама форму?

    вы правы, этот кусок для ответа. Но ответ видимо не приходит.
     
  5. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.036
    Симпатии:
    2.038
    https://www.nulled.cc/threads/242894/
    Не совсем то, конечно, но если подправить форму - будет работать как Вам нужно.

    Защита от спама в данном случае - не стандартная форма и нулевой смысл её добавлять в базы хруммера. Кроме заявки админу это ничего не даст, а админ тупо забанит и всё. СПАМеры ставят себе иные задачи, нежели 1 письмо админу.

    Да и потом, капчи уже давно не останавливают роботов...
     
  6. vovafrost

    vovafrost Создатель

    Регистр.:
    19 май 2012
    Сообщения:
    30
    Симпатии:
    2

    Хрумер имеется :)) да уж при генерации ссылок дле используются стандартные адреса форм регистрации, комментирования, новостей. Но не использую давно эту программу.
    мне в общем то важно сообщение после отправки формы (не зря ж я его придумывал, рисовал) , вашу форму обязательно попробую. Формы разные нужны постоянно, в этот раз думал сделать на основе внутренней дле.
     
  7. krdma

    krdma Постоялец

    Регистр.:
    1 июн 2009
    Сообщения:
    89
    Симпатии:
    15
    копайте в сторону
    feedback.php
    там нужно сделать отправку ответа. Нужно вродь как json обратно вернуть.