Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   забрать значение type=text (https://javascript.ru/forum/jquery/30963-zabrat-znachenie-type%3Dtext.html)

neon_tmn 22.08.2012 08:40

забрать значение type=text
 
Здравствуйте, возникла проблемка. Казалось бы ерунда.
Настраиваю под свои нужды prupload (мультизагрузка файлов).
Суть в том, что есть input type=text, я хочу передать значение в нем в другой файл обработчик.
если я делаю так:
<input type=text id="descript1" name="descript1">

и передаю потом:
<script type="text/javascript">
$(function() {
$("#html5_uploader").pluploadQueue({
// General settings
runtimes : 'html5',
url : 'upload.php',
max_file_size : '10mb',
multipart_params: {"description1": $("input[name=descript1]").val()},
});

});
</script>

То в файл upload.php в description1 передается пустота.

Если я в input жестко присваиваю значение value, тогда передается то, что присвоего в value.
Вот так:
<input type=text id="descript1" name="descript1" value="Какое-то значение">

и передаю потом:
<script type="text/javascript">
$(function() {
$("#html5_uploader").pluploadQueue({
// General settings
runtimes : 'html5',
url : 'upload.php',
max_file_size : '10mb',
multipart_params: {"description1": $("input[name=descript1]").val()},
});

});
</script>

в upload.php получаю строку "Какое-то значение".
Даже если я в input type=text напишу что-то свое затерев "Какое-то значение", то все равно в upload.php я получу "Какое-то значение".
Пробовал input вставлять после java скрипта, но толку нет. все тот же результат.
Подскажите, в какую сторону копать? или может у меня явно допущена ошибка, которую я не вижу?

neon_tmn 22.08.2012 09:19

Попробовал так:
<select id="descript1" name="descript1"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>

ну и передать естественно multipart_params: {"description1": $("select[name=descript1]").val()},

Теперь он всегда берет value="1", не зависимо от того, что я выбираю.

LittlePony 22.08.2012 10:10

можно посмотреть на страницу с такими чудесами?

Deff 22.08.2012 10:16

Цитата:

Сообщение от neon_tmn
ну и передать естественно multipart_params: {"description1": $("select[name=descript1]").val()},

Теперь он всегда берет value="1", не зависимо от того, что я выбираю.

neon_tmn, Скорее всего Вы считываете для передачи значение value раньше его изменения пользователем -
Вариант тестирования данной ситуации - *Если Пустота - то вы считали до изменения поля value

<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>

<script type="text/javascript"> var changeValue='';</script>
 <input type=text id="descript1" name="descript1" oninput="changeValue=this.value"> <input type=button onclick="Alert()" value="Cмотреть">

<script type="text/javascript">
function Alert() {
  alert(changeValue);
}
</script>

LittlePony 22.08.2012 10:19

Цитата:

Сообщение от Deff (Сообщение 199573)
передачи значение value раньше его изменения пользоватеоем

автор писал, что и если он в html заменит значение, то всё равно ему приходит другое.

Deff 22.08.2012 10:20

LittlePony,
Тут подстраховка со второй переменной

neon_tmn 22.08.2012 11:20

LittlePony, делаю на локальном апаче, поэтому наверное нигде.

Deff, открываю страницу в браузере. передо мной мультизагрузчик и мой type=text. Событие мультизагрузчика обрабатывается в файле upload.php.
Я в input ввожу значение, потом нажимаю на ссылку, по которой происходит обработка в upload.php. Поэтому раньше передаться никак не может.

Deff 22.08.2012 11:21

neon_tmn,
Поставьте мой тест
<script type="text/javascript"> var changeValue='';</script> 
<input type=text id="descript1" name="descript1" oninput="changeValue=this.value">


- передавайте переменную changeValue

neon_tmn 22.08.2012 11:24

В самом простом виде так:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" media="screen" />

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>

<script type="text/javascript" src="../js/plupload.js"></script>
<script type="text/javascript" src="../js/plupload.flash.js"></script>
<script type="text/javascript" src="../js/plupload.html5.js"></script>
<script type="text/javascript" src="../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
</head>
<body>

<select id="descript1" name="descript1"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>

<form>
<div>
<div id="html5_uploader" style="width: 450px; height: 330px;">You browser doesn't support native upload. Try Firefox 3 or Safari 4.</div>
</div>
</form>

<script type="text/javascript">
$(function() {
$("#html5_uploader").pluploadQueue({
runtimes : 'html5',
url : 'upload.php',
max_file_size : '10mb',
multipart_params: {"description1": $("select[name=descript1]").val()},
});

});
</script>

</body>
</html>

neon_tmn 22.08.2012 11:28

Deff, сделал так:
<select id="descript1" name="descript1" oninput="changeValue=this.value"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select>

и ниже
<script type="text/javascript">


$(function() {
var changeValue='';

// Setup html5 version
$("#html5_uploader").pluploadQueue({
// General settings
runtimes : 'html5',
url : 'upload.php',
max_file_size : '10mb',
chunk_size : '1mb',
unique_names : true,
multipart: true,
multipart_params: {"description1": changeValue},
filters : [{title : "Image files", extensions : "jpg,gif,png"},],
});

});
</script>


upload.php возвращает пустоту


Часовой пояс GMT +3, время: 00:34.