Показать сообщение отдельно
  #1 (permalink)  
Старый 10.02.2014, 01:19
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Вопрос про веб-форму(с меня баланс)
Доброго времени! Ну понеслась..

Опишу суть есть веб форма, какие то text поля, файл, капча.
Проблема вся состоит в этом файле. Мне нужно сперва отправить файл на сервер, после получить к нему путь, и передать этот путь в веб-форму. Подключил плагин, посмотреть работу можно здесь - jQuery Form Plugin. Всё вроде просто, но из за незнание javascript'a у меня проблема на 2 дня, я не понимаю логику, последовательность. .

HTML
<form enctype="multipart/form-data" method="post" action="/tmpl/ajax/upload.php" id="jq_vac_formid">
	<input type="file" name="jq_vac_file">
	<input type="submit" value="отправить файл">
</form>

вызов таков
// Загрузка файла
	var bar = $('.up_bar');// Для loader'a
	var percent = $('.up_percent');// Для loader'a
	var status = $('#up_status');// Просто передаст статус после успешной загрузки

	$('#jq_vac_formid').ajaxForm({// по id формы работает функция плагина
		beforeSend: function() {
			status.empty();
			var percentVal = '0%';
			bar.width(percentVal)
			percent.html(percentVal);
		},
		uploadProgress: function(event, position, total, percentComplete) {
			var percentVal = percentComplete + '%';
			bar.width(percentVal)
			percent.html(percentVal);
			//console.log(percentVal, position, total);
		},
		success: function() {
			var percentVal = '100%';
			bar.width(percentVal)
			percent.html(percentVal);
		},
		complete: function(xhr) {
			status.html(xhr.responseText);
			alert(xhr.responseText);
		}
	});

Тестил, файл отправляется, loader работает. alert(xhr.responseText); - выдаёт мне путь. Все хорошо.

Дальше я пишу обработку клика для веб-формы

$('.jq_test').click(// Кликнули на элемент submit веб-формы
		function(){
			// тут скажем я проверю поле input name="jq_vac_file" на наличие файла
			// напишу ещё всякой беды в основном сбор значений с остальных input'ов и их проверки.

			// Пользователь выбрал файл
			// после каких то условий, если все хорошо - вызову принудительно клик submit
			// файл отлично закачаеться на сервер
			// alert(xhr.responseText); - выдаст мне путь
			$('#jq_vac_formid').submit();

// Но что делать дальше?
			// Мне нужно получить на него ссылку для дальнейших манипуляций
			// Подумав репой :) мне нужно дождаться загрузки каким то методом onload? или подобным, тк пока не шарю в этом.
			// как то передать сюда xhr.responseText
			// Как быть?

			// Просто чтобы было понятно, дальше работает пост
			$.post(
				// Который и должен передать этот путь.
			);
});


UDP. Благодарю за оперативность! Да просто заранее спасибо!
UDP. Ну или хотя бы скажите в какую сторону копать,буду лапатить дальше...

Последний раз редактировалось Boomerml, 10.02.2014 в 01:35.
Ответить с цитированием