Доброго времени! Ну понеслась..
Опишу суть есть веб форма, какие то 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. Ну или хотя бы скажите в какую сторону копать,буду лапатить дальше...