как получить 2 значения из option?

12
seosniks
На сайте с 13.08.2007
Offline
389
3786

Подскажите пожалуйста как сделать.

Никогда не сталкивался с такой проблемой, а тут нужно получить выбранное из списка

например 2102 или 21035

<option    value="xxxxxx">2102</option>

<option value="xxxxx1">21035</option>
<option value="xxxxx2">2103</option>

с value проблем нет, но мне надо еще и это 2102

передать через форму.

Можно ли передать его.

Или не получится передать 2 значения?

Список вниз спадающий на много значений.

Спасибо.

mts
На сайте с 10.06.2006
Offline
108
mts
#1

еще один селект, либо скрытое поле...

Разработка и поддержка сайтов (http://webmaster24.ru/)
S0
На сайте с 20.11.2010
Offline
32
#2

Используйте скрытое поле и устанавливайте его value при onchange списка. Это самый простой вариант. А вообще непонятно, у вас что, value в списке никак не связано с тем что написано? Странно.

topy
На сайте с 28.03.2006
Offline
142
#3

<select name="select[]" multiple size="10">
<option value="xxxxxx">2102</option>
<option value="xxxxx1">21035</option>
<option value="xxxxx2">2103</option>
</select>

На выходе будет массив с выбранными значениями.

ЗЫ или я не понял вопроса?

Новости коротко и ясно (https://subnews.ru)
seosniks
На сайте с 13.08.2007
Offline
389
#4
snk001:
Используйте скрытое поле и устанавливайте его value при onchange списка. Это самый простой вариант. А вообще непонятно, у вас что, value в списке никак не связано с тем что написано? Странно.

Дело в том что мне надо получить выделил жирным <option value="xxxxx2">2103</option>

первое я получаю xxxxx2

как получить это 2103

пробовал скрытым полем.

оно отдает первое попавшее значение из списка.

проще говоря вот код

циклом выводятся все значения <option

 for($i=1;$i < count($ok9[2]);$i++) {    

$m .="<option title_model=".$totles." value=\"$link\">$totles</option>";
}

за циклом уже собранный select

 echo'<select name="model">'.$m.'</select>';     

вот отработанный код

<select name="model">

<option value="agila/">Agila</option>
<option value=Эantara">Antara</option>
</select>

seosniks добавил 25.02.2011 в 10:35

topy:
<select name="select[]" multiple size="10">

<option value="xxxxxx">2102</option>
<option value="xxxxx1">21035</option>
<option value="xxxxx2">2103</option>
</select>

На выходе будет массив с выбранными значениями.

ЗЫ или я не понял вопроса?

Мне нужны не только значения, но и их названия. это xxxxx2 и это 2103

в приходящем массиве есть 2 переменных которые имеют

название и значение, тоесть переменная название $title и значение $val

$marka_selec .="<option   value=\"$val\">$title</option>";    

select[]" multiple отдаст мне $val то есть выйдет так

<option value="xxxxx2">xxxxx2</option> но тогда не будет $title

А мне нужны название >$title</option>"; и значение value=\"$val\">

С эти value=\"$val\"> проблем нет .

topy
На сайте с 28.03.2006
Offline
142
#5

seosniks, теперь понял.

Думаю тут 2 варианта:

1. У вас же как-то формируются эти списки? Значит где-то (в базе или еще где-то) прописаны соответствия key->value. Значит при получении value вы можете узнать key.

2. Думаю с помощью jQuery это можно сделать.

seosniks
На сайте с 13.08.2007
Offline
389
#6
snk001:
Используйте скрытое поле и устанавливайте его value при onchange списка. Это самый простой вариант. А вообще непонятно, у вас что, value в списке никак не связано с тем что написано? Странно.

snk001 будьте добры пример покажите пожалуйста.

устанавливайте его value при onchange.

vantonkon
На сайте с 13.02.2011
Offline
1
#7

я вижу тут 3 варианта:

1) как предложил, topy: через базу получать наименования элементов, по их id'шникам.

2) создавать hidden поля выбранных элементов при отправки формы (событие <form onsubmit="">)

например такие:

<input type="hidden" name="model_texts[id или ключ]" value="значение" />

3) при создании select'а сразу же создавать hidden поля всех элементов

<input type="hidden" name="model_texts[id или ключ]" value="значение" />

и затем получать данные примерно так:

echo model_texts[$_POST['model']];

seosniks
На сайте с 13.08.2007
Offline
389
#8
topy:
seosniks, теперь понял.
Думаю тут 2 варианта:
1. У вас же как-то формируются эти списки? Значит где-то (в базе или еще где-то) прописаны соответствия key->value. Значит при получении value вы можете узнать key.
2. Думаю с помощью jQuery это можно сделать.

Увы я его не учил. Еслиб с ним может было не плохо.

Да именно мне надо пллучить key И value

seosniks добавил 25.02.2011 в 11:18

vantonkon:
я вижу тут 3 варианта:
1) как предложил, topy: через базу получать наименования элементов, по их id'шникам.
2) создавать hidden поля выбранных элементов при отправки формы (событие <form onsubmit="">)
например такие:
<input type="hidden" name="model_texts[id или ключ]" value="значение" />
3) при создании select'а сразу же создавать hidden поля всех элементов
<input type="hidden" name="model_texts[id или ключ]" value="значение" />
и затем получать данные примерно так:
echo model_texts[$_POST['model']];

Спасибо попробую, как раз это наверное что надо..

_savit
На сайте с 19.03.2006
Offline
135
#9

без использования jquery


<head>

<body>

<select name="sel" onChange="document.getElementById('sel_value').value=this.options[this.options.selectedIndex].value;">
<option value="">выберите</option>
<option value="key1">value1</option>
<option value="key2">value2</option>
</select>

<input type="text" name="sel_value" id="sel_value" />

</body>

с использованием jQuery

<head>
<script type="text/javascript" src="/js/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$('#sel').change(function(){

$('#sel_value').attr('value', $(this).find('option:selected').text())

});

});

</script>

</head>

<body>

<select name="sel" id="sel">
<option value="">выберите</option>
<option value="key1">value1</option>
<option value="key2">value2</option>
</select>
<input type="text" name="sel_value" id="sel_value" />

</body>

p.s естественно надо не забыть скачать jquery

p.p.s набивал прямо тут, так что мог где-то опечататься ... но думаю все заработает

https://vk-botovod.ru - комбайн ВКонтакте, мультимессенджер, эмулятор жизни аккаунтов
seosniks
На сайте с 13.08.2007
Offline
389
#10
_savit:
без использования jquery




с использованием jQuery

<head>

<script type="text/javascript" src="/js/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$('#sel').change(function(){

$('#sel_value').attr('value', $(this).find('option:selected').text())

});

});

</script>

</head>

<body>

<select name="sel" id="sel">
<option value="">выберите</option>
<option value="key1">value1</option>
<option value="key2">value2</option>
</select>
<input type="text" name="sel_value" id="sel_value" />

</body>


p.s естественно надо не забыть скачать jquery

p.p.s набивал прямо тут, так что мог где-то опечататься ... но думаю все заработает

Все пашет но отдает теперь только value, key не отдает

Теже яйца только в полоску

вот смотрите что отдает выдели жирным.

<select name="sel" id="sel">

<option value="">выберите</option>

<option value="key1">value1</option>

<option value="key2">value2</option>

value1 или value2 теперь получаю

echo $_POST['sel_value'];

возвращает value1 value2

а как забрать key1 и value1

Совсем уже не соображаю.

Мне оба значения
важны
, потому как один любой я могу получить

без проблем.

$key1= $_POST['sel_value']; Тут должен быть value1

$value1= $_POST['sel_value']; тут должен быть key1

это все что мне надо.

Толи я криво объясняю, толи не пойму никак.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий