Не получается обновить переменную
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 сообщений
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(),"