Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492

Повторная отправка после ошибки XMLHttpRequest()

12.04.2017, 18:37. Показов 1074. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь сделать кнопку повторной отправки изображения на сервер, но после нажатия консоль выдаёт ошибку!
Вот что пишет FireFox:
SyntaxError: missing ] after element list
Вот что пишет Chrome:
Uncaught SyntaxError: Unexpected identifier

JavaScript
1
2
3
xhr.onerror = function() {
            $('#action-new-pht').html('Ошибка, файл не загружен<br><div id="rst-load-pht" onclick="RstLoadPht('+form+', \''+i+'\')">Повторить отправку</div>');
        };
Подскажите как быть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.04.2017, 18:37
Ответы с готовыми решениями:

XmlHttpRequest запрос (отправка данных на label и ответ с сайта)
Имеется блокнот с неким словом на русском языке, к примеру, словом &quot;мама&quot;. Нужно отправить это слово на сайт sozdik.kz(русско-казахский...

Повторная отправка формы после forward
Всем добрый день. Возникла такая проблема, при отправлении заполненной формы с jsp, сервлет обрабатывает данные и делает запись в базу...

Повторная отправка данных после обновления страницы
Народ, может кто-то написать самые распространённые причины почему происходит повторная отправка данных после обновления страницы( да и...

7
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
12.04.2017, 22:43
ошибка появляется когда жмешь на Повторить отправку или при добавлении строки в блок?
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
12.04.2017, 22:50  [ТС]
Уф, сразу же после нажатия "Повторить отправку"
Пробывал взять в кавычки form, типа токjго:
JavaScript
1
...onclick="RstLoadPht(\''+form+'\', \''+i+'\')">Повторить отправку</div>');
но так уже не форма отправляется а простая строка типа такой "[form Form]", может только надпись чуть другая, точно не помню!!
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
12.04.2017, 22:56
а что значит переменная i? можешь написать всю функцию отправки?

Добавлено через 19 секунд
RstLoadPht вот эту напиши еще
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
12.04.2017, 23:09  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function RstLoadPht(form, n) {
    $('.pht'+n+' #action-new-pht').html('тут HTML');
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "test4.php");
    xhr.upload.onprogress = function(e) {
        $('.pht'+n).css('width', (e.loaded / e.total) * 100+'%');
        $('.pht'+n).html('<b>'+Math.round((e.loaded / e.total) * 100)+'<\/b>');
    };
    xhr.send(form);
    xhr.onload = function() {
        $('.pht'+n+' #box-load-progress').replaceWith('тут HTML');
    };
    xhr.onerror = function() {
        $('.pht'+i+' #action-new-pht').html('тут  таже строка как в первом примере');
    };
}
Добавлено через 5 минут
А вот после выбора/сброса(дропа) файлов, они схожи с RstLoadPht(form, n):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function UploadPht(files) {
    $.each(files, function(i, file) {
        var form = new FormData();
        form.append("album", $('#upload-album').val());
        form.append("datenow", $('#date-now').val());
        form.append("pht", file);
 
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "test4.php");
        xhr.upload.onprogress = function(e) {
            $('.pht'+i).css('width', (e.loaded / e.total) * 100+'%');
            $('.pht'+i).html('<b>'+Math.round((e.loaded / e.total) * 100)+'<\/b>');
        };
        xhr.send(form);
        xhr.onload = function() {
            $('.pht'+i).replaceWith('тут HTML');
        };
        xhr.onerror = function() {
            $('.pht'+i).html('опять та же из первого');
        };
    });
}
я немного id и классы сокращаю для лучшей читабольности

Добавлено через 1 минуту
переменная i это всего лишь порядковый номер(index)
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
13.04.2017, 11:45
в эту первую строку
JavaScript
1
2
3
xhr.onerror = function() {
            $('#action-new-pht').html('Ошибка, файл не загружен<br><div id="rst-load-pht" onclick="RstLoadPht('+form+', \''+i+'\')">Повторить отправку</div>');
        };
ты не можешь просто так подставить объект ведь она вставляется в виде текста, надо туда айди формы сделать
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
13.04.2017, 12:33  [ТС]
Цитата Сообщение от Уф Посмотреть сообщение
ты не можешь просто так подставить объект ведь она вставляется в виде текста
вот и мне интересно почему так, тут форма xhr.send(form), а тут хрен те чё RstLoadPht('+form+', \''+i+'\')
Цитата Сообщение от Уф Посмотреть сообщение
надо туда айди формы сделать
если речь о той форме что type="file", то нет смысла на неё ссылаться, так как после дропа/сброса файлов они вообще в форме не появляются даже, форме не учавствует в этом событии абсолютно
Новую форму создавать типа такой если:
JavaScript
1
2
3
4
5
xhr.onerror = function() {
     $('#action-new-pht').html('Ошибка, файл не загружен<br>
<div id="rst-load-pht" onclick="RstLoadPht('+form+', \''+i+'\')">Повторить отправку</div>
<input type="file" style="display:none;" value"'+form.file+'">');
};
Результат непредсказуем, я не в курсе будет ли работать!!!!

Добавлено через 4 минуты
Цитата Сообщение от Уф Посмотреть сообщение
ты не можешь просто так подставить объект ведь она вставляется в виде текста
а если сначала добавить текст типа
JavaScript
1
2
3
$('#action-new-pht').html('<div id="rst-load-pht" onclick="">Повторить отправку</div>');
// а после отладка onclick
$('#rst-load-pht').attr('onclick', 'RstLoadPht('+form+', \''+i+'\')');
Интересно что получится!!
Позже протестю

Добавлено через 3 минуты
или же попробывать в массиве хранить файлы, а после удачной повторной отправки файл из массива по ключу удалять
0
24 / 24 / 8
Регистрация: 27.02.2012
Сообщений: 492
14.04.2017, 13:52  [ТС]
Получилось, массив спас меня!!!

Добавлено через 1 минуту
Уф, а не вкурсе ли ты как организовать поочерёдность загрузки, что бы они ни все разом а по очереди загружались!???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2017, 13:52
Помогаю со студенческими работами здесь

Повторная отправка формы после обновления страницы
такая проблема : ввожу слова для ввода их в БД, слова добавляются, теперь я обновляю страницу и появляется Alert с подтверждением...

Повторная отправка формы
Здравствуйте. Подскажите решение проблемы пожалуйста. Есть форма на jsp странице метод POST , контроллер перехватывает этот запрос с...

Повторная отправка формы
Привет, подскажите, как разрешить проблему. Есть несколько select они выполняют роль фильтров, ниже идет таблица. По событию...

Повторная отправка формы
Добрый вечер дорогие киберчане! Срочно нужна помощь, гуглить замучился, нужно в короткий срок доделать программу, проблема следующая: ...

Повторная отправка формы
Каким-то образом человек отправил одну и ту же форму в одну секунду. От CSRF защита есть, но везде у него токены разные, однако формы...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru