Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2014, 05:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boomerml
Который и должен передать этот путь
Куда передать? На сервер? А у сервера че, склероз? Ему же только что передали файл, он че не запомнит его имя?

Зачем засылать файл вперед формы? Зачем все усложнять? Почему не делать все (отправка формы, засыл файла) одним HTTP-запросом?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2014, 10:12
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Вопрос закрыт, подсказали на другом ресурсе.

Сообщение от danik.js Посмотреть сообщение
Куда передать? На сервер? А у сервера че, склероз? Ему же только что передали файл, он че не запомнит его имя?

Зачем засылать файл вперед формы? Зачем все усложнять? Почему не делать все (отправка формы, засыл файла) одним HTTP-запросом?
И действительно, тривиальная задача. Но тут свои подмажки, рассказывать нет смысла, аж самому противно всё это писать если честно...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глупый вопрос про if then. Irish.Tippler Общие вопросы Javascript 9 26.07.2012 12:32
Вопрос...все таки про overflow: hidden bayah (X)HTML/CSS 2 14.07.2012 09:31
У меня есть вопрос rzhsasha Firefox/Mozilla 29 08.12.2010 18:48
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27