Олег Н.
297 сообщений
#12 лет назад
Есть простая задача - нужно загрузить картинки через плагин jQuery File Upload изменяя при этом папку назначения.
Вот код главного js файла.
function dir()
{
var dir;
dir = $("#dir").attr("value");
if(dir=="") dir = $("#dir2 option:selected").attr("value");
alert(dir);
return dir;
}

$(function () {
'use strict';
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: 'gallery/server/php/index.php?dir='+dir(),
});
// Enable iframe cross-domain access via redirect option:
$('#fileupload').fileupload(
'option',
'redirect',
window.location.href.replace(
/\/*$/,
'/cors/result.html?%s'
)
);

if (window.location.hostname === 'blueimp.github.com') {
// Demo settings:
$('#fileupload').fileupload('option', {
url: '//jquery-file-upload.appspot.com/',
maxFileSize: 5000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
process:
});
// Upload server status check for browsers with CORS support:
if ($.support.cors) {
$.ajax({
url: '//jquery-file-upload.appspot.com/',
type: 'HEAD'
}).fail(function () {
$('<span class="alert alert-error"/>')
.text('Upload server currently unavailable - ' +
new Date())
.appendTo('#fileupload');
});
}
} else {
// Load existing files:
$.ajax({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: $('#fileupload').fileupload('option', 'url'),
dataType: 'json',
context: $('#fileupload')
}).done(function (result) {
$(this).fileupload('option', 'done')
.call(this, null, {result: result});
});
}

// Initialize the Image Gallery widget:
$('#fileupload .files').imagegallery();

// Initialize the theme switcher:
$('#theme-switcher').change(function () {
var theme = $('#theme');
theme.prop(
'href',
theme.prop('href').replace(
/+\/jquery-ui.css/,
$(this).val() + '/jquery-ui.css'
)
);
});

});

А вот кода для ввода и изменения папки назначения
<select id="dir2">
<option value="image1">1</option>
<option value="image2">2</option>
<option value="image3">3</option>
<option value="image4">4</option>
</select>
Или
<input type="text" id="dir" value="" placeholder="Введите название">

Но дело в том что как бы я не старался, всеравно у меня запрос идет вида http:/site/server/php/index.php?dir=image1
Как мне изменить директорию?
Роман П.
1599 сообщений
#12 лет назад
А alert(dir) все как нужно при аплоуде пишет? И все равно image1 в итоге? Тогда да, магея

attr(value) - эт чо такое ваще? почему не кошерное val() ?
Олег Н.
297 сообщений
#12 лет назад
Судя из алерта то функция меняется. В данному случае без разницы attr(value) или val()
Роман П.
1599 сообщений
#12 лет назад
Цитата ("NeoMurderer"):
Судя из алерта то функция меняется.

смысли, функция меняется? Что это значит?

если все окей с яваскриптом, то тогда ошибка в серверном коде, который аплодит файл.
Олег Н.
297 сообщений
#12 лет назад
Если я допусти пишу
 url: 'gallery/server/php/index.php?dir='+$("#dir2  option:selected").attr("value");

То постоянно отправляет запрос на image1 вне зависимости от значения селекта. Оно берет по умолчанию первый оптион
Антон Т.
167 сообщений
#12 лет назад
Цитата ("NeoMurderer"):
 if(dir=="")


тут разве не

 if(dir==="")


так должно быть?
Олег Н.
297 сообщений
#12 лет назад
fastimus, без разницы, что так что так не работает.
Антон Т.
167 сообщений
#12 лет назад
Квери какая? пробовали менять
dir = $("#dir2  option:selected").attr("value");
на
dir = $("#dir2  option:selected").val();
?
Олег Н.
297 сообщений
#12 лет назад
Запрос идет всегда вида
http://site.ru/admin/gallery/server/php/index.php?dir=image1

Даже есть алерт дает мне image2 или image3.
fastimus, да, менял
Максим К.
124 сообщения
#12 лет назад
Вы задаете переменную один раз. А надо перед каждым сабмитом формы, подставлять свежее значение селекта.
Максим К.
124 сообщения
#12 лет назад
И запятую надо убрать для ие " url: 'gallery/server/php/index.php?dir='+dir(),"