Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2012, 12:46
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

Передать в AjaxUpload динамическое значение selected для option
Есть select, который jquery код делает выбраным один из option.
Так вот если select делается selected с помощью jquery, а не в жесткую прописан в коде, то невозможно передать в качестве data: { } значение этого динамически созданного selected. Выдает: undefined.

php формирует select:

<select size="5" id="select_cat" name="select_cat">
<? 
$opt_cat = $sql->query('SELECT id, name FROM category');
foreach ($opt_cat as $cat_val) {
echo "<option value=\"$cat_val[id]\">$cat_val[name]</option>";
}
 ?>
 </select>


выбираем один из option, получаем значение выбранного option и пытаемся передать его в php из ajaxupload.

$("#select_cat option:selected").val()


пытаемся безуспешно отправить это значение при загрузке картинки:

new AjaxUpload('upload_button', {
action: '/upload.php',
name: 'userfile',
onSubmit: function(file, extension) {
$('#imgloader').show();
$('#upload_button').text('Загрузка...');
//this.disable();
},
type:"POST",
data: {
edit_id: $("#select_cat option:selected").val(), // = undefined почему-то
						},
responseType: "json", 
onComplete : function(file, response) { //onComplete
$('#imgloader').hide();
 if(response.rez==="success") {
							// успешно
								 }
													else { // не очень успешно }
													}
													
					}//onComplete
					
	});


интересно передать option selected именно выбранный пользователем, а не сформированный php. Почему может быть значение пустым?

Последний раз редактировалось SunYang, 22.05.2012 в 12:51.
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2012, 15:42
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от SunYang Посмотреть сообщение
Есть select, который jquery код делает выбраным один из option.
Так вот если select делается selected с помощью jquery,
......
интересно передать option selected именно выбранный пользователем, а не сформированный php. Почему может быть значение пустым?
начало непонятно как select меняется с помощью jquery?
undefined будет если пользователь ничего не выбрал
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2012, 16:34
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

объясняю)

есть select :

<div id="info"></div>

<select id="sel" size="3">
<option value="1">Значение 1</option>
<option value="2">Значение 2</option>
<option value="3">Значение 3</option>
</select>

<div id="send">SEND</div>


и двумя разными способами пытаемся отправить значение выбранного option. C помошью $.ajax и с помощью Ajax Upload :

1) первый метод с помощью $.ajax. Все работает:
$("#send").click(function(){
$.ajax({
		            url: 'upload.php',
					type:'POST',
					data: {
						sel_id:$("#sel option:selected").val(),
					},
					dataType: "json", 
					success: function(response){ //onComplete
$("#info").html(response.msg);													
}
					
	});
});


2) второй метод с помощью Ajax Upload. Выдает Undefined:

new AjaxUpload('send', {
		            action: 'upload.php',
					name: 'theFile',
					
					data: {
						sel_id: $("#sel option:selected").val(),
					},
					responseType: "json",
					onComplete : function(file, response) { //onComplete
$("#info").html(response.msg);
}
											
	});


содержимое upload.php , куда посылаем запрос:

$arr = array("response" => "success", "msg" => $_POST['sel_id']);
echo json_encode($arr);


В первом случае нам возвращается value выбранного option (1, 2 или 3). Во втором случае нам присылается "Undefined".

Я честно говоря не пойму почему через Ajax Upload в значение $("#sel option:selected").val() передается "undefined"
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2012, 17:13
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от SunYang Посмотреть сообщение
объясняю)
...
Я честно говоря не пойму почему через Ajax Upload в значение $("#sel option:selected").val() передается "undefined"
понял-предполагаю что дело в самом объекте upload
если поставить
sel_id: 2
оно по идее тоже undefined передвст
других версий нет
Ответить с цитированием
  #5 (permalink)  
Старый 23.05.2012, 00:35
Профессор
Отправить личное сообщение для SunYang Посмотреть профиль Найти все сообщения от SunYang
 
Регистрация: 22.02.2008
Сообщений: 189

Интересно то, что, если в sel_id передать конкретное значение, как например:
sel_id:2

или
sel_id: "строка"
то все нормально передает)
так же передает значение любого элемента, не динамически созданного, а прописанного в жесткую.
например у нас есть в коде:
<div id="aa">Body Div</div>

то если послать
sel_id: $("#aa").html()

то серваку пошлется "Body Div".
А если сначала в пустую дивку:
<div id="aa"></div>
вставить контент:
$("#aa").html("Body Div")

а потом его попытаться передать серваку:
sel_id: $("#aa").html()

в данном случае, мы получим этот долбанный Undefined))
Причем серваку передается не пустое значение, а именно строка со значением "undefined".
Что-то мне кажется, это мега-глюк самого фреймвока AjaxUpload
Он не хочет передавать динамические данные.
Ответить с цитированием
  #6 (permalink)  
Старый 23.05.2012, 06:05
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от SunYang Посмотреть сообщение
Что-то мне кажется, это мега-глюк самого фреймвока AjaxUpload
Он не хочет передавать динамические данные.
Остается еще так попробовать
sel_id:2
потом делаем какую то операцию с jquery
$("#aa").html("Body Div")
а потом отправляем upload
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задать атрибуты option для select KonstantinK Элементы интерфейса 2 22.12.2010 13:39
Подскажите плизз с выбором селектора для select option frolvict jQuery 2 13.11.2010 15:29
Подскажите как передать по ссылке команду для js Alexanderos jQuery 8 30.10.2010 04:31
Как передать значение по ссылке на другую страницу сайта Rollo Общие вопросы Javascript 7 18.10.2010 15:02
Пользовательский скрипт для выбора option в select по умолчанию justalittleperson Элементы интерфейса 1 04.10.2010 06:13