Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Шаблоны (TPL) Почему форма feedback блокирует вывод сообщения об успешной отправке в модальном окне?

Почему форма feedback блокирует вывод сообщения об успешной отправке в модальном окне?


     19.11.2014    Шаблоны (TPL), Общие вопросы по PHP    1749

вопрос
Прошу совета у гуру, почему так происходит?
1. Берем лицензионную 10.1, заходим в "Обратную связь", заполняем форму, жмем "Отправить", появляется надпись "Загрузка, пожалуйста подождите" и потом выводится "Сообщение успешно отправлено" в стандартном стиле.
2. Добавляем в main.tpl, предложенный здесь на форуме, скрипт вывода всех сообщений на сайте в модальном окне

<script type="text/javascript">
$(function(){
$('#dle-info').dialog({
    autoOpen: true,
    width: 380,
      buttons:{
        "Назад": function(){
            history.back();
        },"На главную":function(){
            location.href='/';
        }    }
}); });
</script>

3. В дефолтном info.tpl меняем весь его код:
<div class="clr berrors"><b>{title}</b><br />{error}</div>

на код вывода модального окна:
<div id="dle-info" class="welldone" title="Информация" style="display:none;">{error}</div>

4. В результате модальное окно замечательно выводит ВСЕ сообщения во ВСЕХ формах на сайте, и в самой "Обратной форме" в модальном окне выводит сообщения, например "указан неправильный е-майл".
НО (!) после заполнения формы и нажатия "Отправить", появляется обычная надпись "Загрузка, пожалуйста подождите", потом она исчезает и всё! Всплывающее окно - "Сообщение успешно отправлено" не появляется!
Экспериментировал с feedback.php из /modules и /ajax, но моего знания PHP не хватает чтобы разобраться, почему работающее абсолютно везде модальное окно с сообщениями, блокируется только в feedback и только при выводе итогового "Сообщение успешно отправлено"?
Здесь на форуме здесь уже отмечали своеобразность формы feddback, после отправки сообщения, но там использовали стандартный вывод для всех сообщений.
Буду благодарен за любые наводки и соображения по этому повод.

Ответа пока нет


Комментарии пользователей (2)

vitnet
218

2174 | 930

vitnet - 19 ноября 2014 12:01 - Эксперт

Вот вам вариант по проще engine/modules/feedback.php найти
                if (data.status == "ok") {
                    scroll( 0, $("#dle-content").offset().top - 70 );
                    $('#dle-content').html(data.text);
                }

заменить на:
                if (data.status == "ok") {
                    scroll( 0, $("#dle-content").offset().top - 70 );
                    DLEalert("{$lang['feed_ok_1']}", dle_info);
                }

prpobed5
25

prpobed5 - 19 ноября 2014 20:30 - Юзер

vitnet, спасибо Вам за помощь! Так окно появляется, но пустое без текста "Сообщение успешно отправлено".
Заменил data.text так

DLEalert('{$lang['feed_ok_1']}', dle_info);

и теперь сообщение выводится в модальном окне. Надеюсь, я правильно понял, что это допустимо так как по указанному выше в коде условию это окно выводится только в случае успешной отправки ?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы