Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
1

Ожидание в AJAX запросе

31.10.2017, 15:20. Показов 1052. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Хочу сделать чтобы после заполнения формы и нажатия sumbit внизу всплывал текст "Идет отправка, подождите" когда выполняется ajax запрос, а после выполнения эта надпись скрывалась и появлялась другая - " Спасибо , ваш сообщение отправлено". Вторая надпись выводится после обработки запроса, а которая в процессе должна - нет. Что не так делаю? Вот кусок кода:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$(document).ready(function () {
 
    $("#mod-body form").submit(function () {
 
        var button = $(this).find('input[type="submit"]');
        //button.attr('disabled','disabled');
        $("#mod-body #testOk").css({"display":"none"});
        $("#mod-body #testWait").hide();
        var listSbjs ='';
        if (sbjs.get.current.typ!='(none)')     { listSbjs +="Тип трафика: "+(sbjs.get.current.typ)+'\n';}
        if (sbjs.get.current.src!='(none)')     { listSbjs +="Источник: "+(sbjs.get.current.src)+'\n';}
        if (sbjs.get.current.mdm!='(none)')     { listSbjs +="Канал: "+(sbjs.get.current.mdm)+'\n';}
        if (sbjs.get.current.cmp!='(none)')     { listSbjs +="Кампания: "+(sbjs.get.current.cmp)+'\n';}
        if (sbjs.get.current.cnt!='(none)')     { listSbjs +="Контент: "+(sbjs.get.current.cnt)+'\n';}
        if (sbjs.get.current.trm!='(none)')     { listSbjs +="Ключевое слово: "+(sbjs.get.current.trm)+'\n';}
        if (sbjs.get.current_add.fd!='(none)')  { listSbjs +="Дата и время первого визита: "+(sbjs.get.current_add.fd)+'\n';}
        if (sbjs.get.current_add.ep!='(none)')  { listSbjs +="Точка входа: "+(sbjs.get.current_add.ep)+'\n';}
        if (sbjs.get.current_add.rf!='(none)')  { listSbjs +="Реферер: "+(sbjs.get.current_add.rf)+'\n';}
        if (sbjs.get.session.pgs!='(none)')     { listSbjs +="Сколько страниц сайта посмотрел посетитель: "+(sbjs.get.session.pgs)+'\n';}
        if (sbjs.get.session.cpg!='(none)')     { listSbjs +="URL текущей страницы посетителя: "+(sbjs.get.session.cpg)+'\n';}
        if (sbjs.get.udata.vst!='(none)')       { listSbjs +="Сколько раз пользователь посещал сайт: "+(sbjs.get.udata.vst)+'\n';}
        if (sbjs.get.udata.uag!='(none)')       { listSbjs +="Текущий браузер: "+(sbjs.get.udata.uag);}
        var
            formName  = $(this)./*parent("form").*/find('span.hh2').text(),
            formID    = $(this)./*parent("form").*/attr('id'),
            formNm    = $('#' + formID),
            formHref  = (window.location.href),
            data_solo = formNm.serialize();
        //alert(formName+formID+formHref);
        data_solo += '&id_form_tmp_name='+formID+'&page='+formHref+'&form_name='+formName+'&detail_txt='+listSbjs+'&dvadva=43';
        
        
        if ($('.custom-checkbox').hasClass('active')){
            $('.agree-error').hide();
          $("#mod-body #testWait").show();
            $.ajax({
                url: "/include/ajax_scripts/mail.php",  // /ajax.handler.php   /handlers/feedback.php
                type: "POST",
                dataType: "json",
                data: data_solo,
                success: function (data) {
                    
                        if (data.result==='') {
 
                            $("#mod-body #"+formID+" #testOk").css({"display":"block"});
                            
                            inputErrClear("#mod-body input[type='tel']",".tel-err");
                            inputErrClear("#mod-body input[name='name']",".name-err");
                            inputErrClear("#mod-body input[name='time']",".tel-err");
                            inputErrClear("#mod-body textarea[name='message']",".msg-err");
                            inputErrClear("#mod-body input[type='email']",".mail-err");
 
                            $(formNm).find("input[name='sub']").attr('disabled','disabled');
                            setTimeout(function(){$(formNm).find("input[name='sub']").removeAttr('disabled');}, 4000);   
                        }
                        else{
                            
                            if (data.result == "call-form") {
                                inputErr("#mod-body #"+formID+" input[type='tel']",".tel-err");
                                inputErr("#mod-body #"+formID+" input[name='name']",".name-err");
                            }
                            else if (data.result == "gift-form"){
                                inputErr("#mod-body #"+formID+" input[name='name']",".name-err");
                                inputErr("#mod-body #"+formID+" input[type='email']",".mail-err");
                                inputErr("#mod-body #"+formID+" input[name='tel']",".tel-err");
                            }   
                            else if (data.result == "message-form"){
                                inputErr("#mod-body #"+formID+" input[name='name']",".name-err");
                                inputErr("#mod-body #"+formID+" input[type='tel']",".tel-err");
                                inputErr("#mod-body #"+formID+" textarea[name='message']",".msg-err");
                            }
                        }
                        button.removeAttr('disabled');
                        
                    
                },
                error: function (data) {
                    button.removeAttr('disabled');   
                }
            });
        }
        else {
            $('.agree-error').show();
        }
        
        return false;
    });
});
На сайте 3 формы, вот одна из них для примера:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form action='' id='call-form' method='post'>
        <i class='fa fa-close'></i>
        <span class='hh2'>Заказать обратный звонок</span>
        <input name='name' placeholder='Введите имя*' type='text'>
        <span class='name-err'>Вы не ввели имя</span>
        <input name='tel' placeholder='7 ( _ _ _ ) _ _ _ _ _*' type='tel'>
        <input name='time' placeholder='Введите время' type='text'>
        <span class='tel-err'>Вы не ввели телефон</span>
 
        <div class="agree-line">
          <div class="custom-checkbox"></div>
          <div class="agree-description">Согласен с <a href="/upload/agree.pdf" target="_blank">условиями об использовании сайта</a></div>
        </div>
 
        <div class="agree-error">Необходимо принять согласие на обработку персональных данных!</div>
 
        <input disabled name='sub' type='submit' value='Отправить'>
        <p id="testWait">Пожалуйста,подождите</p>
        <p id="testOk">Спасибо, Ваше сообщение  отправлено</p>
      </form>
Добавлено через 7 минут
ps. не сделал снова hide этой строчки после успешного запроса, потому что хотел чтобы она в хотя бы при выполнении запроса появлялась

Добавлено через 14 минут
Блин,наверно надо было тему создать в javascript, a не в jQuery...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2017, 15:20
Ответы с готовыми решениями:

AJAX. Ожидание события от PHP
Добрый день! Возник вопрос самой логики: Сторонняя программа вызывает PHP-файл, например,...

Ajax ожидание ответа от асинхронного запроса
Доброго времени суток. Возник вопрос. А знаний и гугла не хватает. Суть задачи: ...

Ошибка в AJAX запросе
Здравствуйте ! Есть форма которую мне нужно обработать с помощью ajax. У меня есть код который...

Ошибка в ajax-запросе
Файл printer.php, который вносит апдейт в бд. &lt;?php require_once('db.php'); if(isset($_POST))...

4
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
31.10.2017, 17:57 2
внутри success в любом месте воткни
Javascript
1
$("#mod-body #testWait").hide();
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
31.10.2017, 19:42  [ТС] 3
Так а че ее скрывать пока,если она даже не появляется сначала?
0
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
31.10.2017, 19:45 4
в восьмой строке измени на .show()
0
2 / 2 / 4
Регистрация: 11.10.2017
Сообщений: 47
31.10.2017, 20:11  [ТС] 5
спасибо!А то сильно тупил с логикой выполнения скрипта
0
31.10.2017, 20:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2017, 20:11
Помогаю со студенческими работами здесь

Изменить referer в ajax запросе
function get_post() { $.ajax({ type: &quot;GET&quot;, url:...

Ошибка при запросе Ajax
Есть форма: &lt;form method='POST' id='forms' action='javascript:void(null);' onsubmit='call()'&gt;...

404 (Not Found) при ajax запросе
Добрый день! Не могу понять по какой причине некорректно отрабатывает ajax запрос. По клику по...

Выдает ошибку при ajax запросе
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js&quot;&gt;&lt;/script&gt; $.ajax({...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru