Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231

Как правильно выполнять ajax скрипт по клику

01.09.2019, 10:33. Показов 402. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется такой код:
Кликните здесь для просмотра всего текста

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
dropZone.on('drop', function(e) {
        dropZone.removeClass('dragover');
        let files = e.originalEvent.dataTransfer.files;
        sendFiles(files);
    });
 
    $('.upload-btn').change(function() {
        let files = this.files;
        sendFiles(files);
    });
 
    var Data = new FormData();  
 
    function sendFiles(files) {
        let json;
 
        $(files).each(function(index, file) {
            Data.append('file', file);
        });
 
        $.ajax({
            url: $('form').attr('action'),
            type: $('form').attr('method'),
            data: Data,
            contentType: false,
            processData: false,
            success: function(result) {
                json = jQuery.parseJSON(result);
                 if (json.url && json.status && json.message) {
                    alert(json.status + ' - ' + json.message);
                    window.location.href = '/' + json.url;
                 } else if (json.url) {
                    window.location.href = '/' + json.url;
                 } else {
                    alert(json.status + ' - ' + json.message);
                 }
            }
        });
    }

Когда файл выбирается через input type file или дропается на область все хорошо срабатывает. Когда пишу такой код:

Кликните здесь для просмотра всего текста

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
dropZone.on('drop', function(e) {
        dropZone.removeClass('dragover');
        let files = e.originalEvent.dataTransfer.files;
        sendFiles(files);
    });
 
    $('.upload-btn').change(function() {
        let files = this.files;
        sendFiles(files);
    });
 
    var Data = new FormData();  
 
    function sendFiles(files) {
        let json;
 
        $(files).each(function(index, file) {
            Data.append('file', file);
        });
 
        // $.ajax({
            // url: $('form').attr('action'),
            // type: $('form').attr('method'),
            // data: Data,
            // contentType: false,
            // processData: false,
            // success: function(result) {
                // json = jQuery.parseJSON(result);
                 // if (json.url && json.status && json.message) {
                    // alert(json.status + ' - ' + json.message);
                    // window.location.href = '/' + json.url;
                 // } else if (json.url) {
                    // window.location.href = '/' + json.url;
                 // } else {
                    // alert(json.status + ' - ' + json.message);
                 // }
            // }
        // });
    }
 
    $('.btn-form').click(function(event) { 
        let json;   
 
        event.preventDefault();
        $.ajax({
            url: $('form').attr('action'),
            type: $('form').attr('method'),
            data: Data,
            contentType: false,
            processData: false,
            success: function(result) {
                json = jQuery.parseJSON(result);
                 if (json.url && json.status && json.message) {
                    alert(json.status + ' - ' + json.message);
                    window.location.href = '/' + json.url;
                 } else if (json.url) {
                    window.location.href = '/' + json.url;
                 } else {
                    alert(json.status + ' - ' + json.message);
                 }
            }
        });
    });


Когда дропаю файл и нажимаю кнопку, то обработчик на сервере пишет файл не выбран и сообщение от сервера возвращается не в alert а на всю страницу т.е. старница выглядит так
Кликните здесь для просмотра всего текста
{"status":"error","message":"\u0418\u043 7\u043e\u0431\u0440\u0430\u0436\u0435\u0 43d\u0438\u0435 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u04 3e"}

Если файл выбираю через кнопку, то выводится сообщение так же на всю страницу об успешной операции и изображение сохраняется на сервере.
Кликните здесь для просмотра всего текста
{"url":"admin/viewBanners","status":"success","message ":"\u0411\u0430\u043d\u043d\u0435\u0 440 \u0434\u043e\u0431\u0430\u0432\u043b\u04 35\u043d"}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.09.2019, 10:33
Ответы с готовыми решениями:

Как выполнять скрипты из ajax.ResposeText, без jquery
как выполнять скрипты из ajax.resposeText, без jquery?

Как выполнять скрипт с промежутком во времени?
У меня есть скрипт. Я хочу чтобы на хостинге он выполнялся каждые 10 мин и обновлял файлы на хостинге, как это сделать и возможно ли это...

Как правильно выполнять apt-get autoremove?
Сегодня решил почистить жёсткий диск от "неиспользуемых пакетов" с помощью apt-get autoremove Лучше бы этого не делал! Я не посмотрел...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2019, 10:33
Помогаю со студенческими работами здесь

Модульное тестирование, как правильно выполнять
Делаю контрольную работу по Тестированию ПО и возникли трудности при выполнении модульного тестирования. Здесь есть люди, которые могут...

Конвертация из integer в real, как правильно выполнять?
Всем привет. Давно не занимался програмированием и вот подзабыл, как конвертировать типы данных. Как конвертировати из целочиселенного...

Unity как выполнять скрипт если на сцене имеется обьект с выбранным тегом
Имеется скрипт void OnMouseDown() { if (gameflow.placeCheese == "y" && cheeseObjOnScene == null ) { ...

Как правильно получить тоску в 3D пространстве по клику мыши
допустим есть тиррейн или просто поверхность. я кликаю мышью и мне нужно получить эту точку в мировом трехмерном мире сцены.заранее спасибо...

Как правильно вызвать эту функцию по клику? (bitcoin api)
Ребят, приветствую. Очень часто бороздил по этому форуму, но только в режиме "read only". Так все ответы на мои вопросы находил и так....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru