Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2016, 21:36
Интересующийся
Отправить личное сообщение для deltaman Посмотреть профиль Найти все сообщения от deltaman
 
Регистрация: 10.05.2014
Сообщений: 11

AjaxUpload - несколько кнопок загрузчика
Добрый день. Имеется такой кусок скрипта, который вставляет на страницу блок с загрузчиком AjaxUpload:
function product_foto(product_row) {
.................
................
if (ui.item['foto'] != '') {
     html = '<div class="fotos">';

for (i = 0; i < ui.item['foto'].length; i++) {
     foto = ui.item['foto'][i];

     if (foto['type'] == 'file') {
          html += '<div>';
          html += '<a id="file-link-' + foto['product_foto_id'] + '-' + product_row + '" class="file-link"></a>';
          html += '<a id="button-foto-' + foto['product_foto_id'] + '-' + product_row + '" class="btn"><?php echo $button_upload; ?></a>';
          html += '<input type="hidden" name="foto_product[' + product_row + '][foto][' + foto['product_foto_id'] + ']" value="' + foto['foto_name'] + '" />';
          html += '</div>';
     }

}
     html += '</div>';

     $('#product_fotos' + product_row).append(html);

	for (i = 0; i < ui.item['foto'].length; i++) {
		foto = ui.item['foto'][i];

		if (foto['type'] == 'file') {
			var upbtn = $('#button-foto-' + foto['product_foto_id'] + '-' + product_row);
			var uplnk = $('#file-link-' + foto['product_foto_id'] + '-' + product_row);
			var upipt = $('input[name=\'foto_product[' + product_row + '][foto][' + foto['product_foto_id'] + ']\']');
			
			new AjaxUpload('#button-foto-' + foto['product_option_id'] + '-' + product_row, {
				action: 'upload.php',
				name: 'file',
				autoSubmit: true,
				responseType: 'json',
				onSubmit: function(file, extension) {
					upbtn.after('<img src="view/image/loading.gif" class="loading" />');// не срабатывает
				},
				onComplete: function(file, json) {
					
					if (json['success']) {
						$('#info').html('<div class="success">' + json['success'] + '</div>');
						uplnk.empty().append(json['filename']).show('fast');// не срабатывает
						upipt.attr('value', json['filename']);// не срабатывает
					}
					
					if (json.error) {
						$('#info').html('<div class="warning">' + json['error'] + '</div>');
					}
				}
			});
		}

	}

}
}


Этот код вставляет на страницу блок с кнопкой загрузки файла, вот в таком виде:
<div class="fotos">
<div>
<a id="file-link-222-1" class="file-link"></a>
<a id="button-foto-222-1" class="btn">Загрузить файл</a>
<input type="hidden" name="foto_product[1][foto][222]" value="">
</div>
</div>


Все работает как надо если блок один, но иногда блоков таких может быть несколько:
<div class="fotos">
<div>
<a id="file-link-222-1" class="file-link"></a>
<a id="button-foto-222-1" class="btn">Загрузить файл</a>
<input type="hidden" name="foto_product[1][foto][222]" value="">
</div>
<div>
<a id="file-link-231-1" class="file-link"></a>
<a id="button-foto-231-1" class="btn">Загрузить файл</a>
<input type="hidden" name="foto_product[1][foto][231]" value="">
</div>
</div>

Вот здесь возникает проблема. Не правильно привязывается AjaxUpload и нажатие любой кнопки ведет к отработке загрузчика, но условия onSubmit и onComplete срабатывают применительно к последнему блоку, а не к тому, в котором нажата кнопка.
Отсюда вопрос, как разрулить эту ситуацию, чтобы AjaxUpload отрабатывал в блоке, в котором нажата его кнопка?
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2016, 21:50
Интересующийся
Отправить личное сообщение для deltaman Посмотреть профиль Найти все сообщения от deltaman
 
Регистрация: 10.05.2014
Сообщений: 11

Ни у кого нет никаких мыслей? Хотя бы теории? Если я их уже не проверял, проверю.
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2016, 16:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от deltaman
Хотя бы теории
В теории нужно почитать доку на AjaxUpload чего в нем говорится о множественном выборе.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько кнопок с одинаковым id Yaroma11 jQuery 3 14.05.2014 11:51
Слайдер bxSlider: несколько групп кнопок управления spo Библиотеки/Тулкиты/Фреймворки 1 17.10.2013 23:16
Скрытие пустых кнопок Царь Леонид Элементы интерфейса 4 26.08.2013 14:38
При повторении несколько раз animate - рассинхрон... Petja jQuery 4 21.05.2013 12:58
Как можно нажать сразу на несколько кнопок? Yan.Total Events/DOM/Window 2 21.03.2013 11:02