установка нескольких значений в multiple select
пытаюсь сделать скрипт, который бы выставлял в multiple select'e те опции, которые совпадают с данными из массива..
пытаюсь делать так: <? $array_tip_n_size = count($array_tip_n); for ($j = 0; $j < $array_tip_n_size; ++$j) { ?> <script> for(var i = 0; i < document.getElementById('filter_tip_n').length; i++) { if(document.getElementById('filter_tip_n').options[i].value == "<? echo $array_tip_n[$j]; ?>") { document.getElementById('filter_tip_n').options[i].selected = true; } } </script> <? } } ?> но в итоге в select'e выбирается толькo одно значение.. подскажите что не так, заранее спасибо |
CoRviN88, риторический вопрос... ПХПисты начнут нормальные тестовые примеры показывать? Или прям так свой ПХПшный фарш и будут всегда копировать?
|
ну ок.
есть массив: <? $array_tip_n[] = "Комната"; $array_tip_n[] = "Дом"; ?> есть select: <select id="filter_tip_n" name="filter_tip_n[]" class="span12" multiple> <option>Комната</option> <option>1-комнатная</option> <option>Дом</option> <option>Студия</option> </select> хочу на основе этого получить: <select id="filter_tip_n" name="filter_tip_n[]" class="span12" multiple> <option selected>Комната</option> <option>1-комнатная</option> <option selected>Дом</option> <option>Студия</option> </select> с помощью вот этого: <? $array_tip_n_size = count($array_tip_n); for ($j = 0; $j < $array_tip_n_size; ++$j) { ?> <script> for(var i = 0; i < document.getElementById('filter_tip_n').length; i++) { if(document.getElementById('filter_tip_n').options[i].value == "<? echo $array_tip_n[$j]; ?>") { document.getElementById('filter_tip_n').options[i].selected = true; } } </script> <? } } ?> но в итоге выбирается только 1 пункт |
разобрался, тему закрыть
|
Так не делают. Вы записываете столько кусков кода js, сколько элементов в массиве.
Массив придется передавать в js, а там уже обычно. На сервере можно задать только текущее, активное значение, если изменения идут через обновление страницы. select multiple кодирует выбор двоичным кодом. |
Если все опшны генерятся на сервере, то бля, не проще ли тут же, при их генерации ставить метку selected нужным? Помоему до этого даже даун додуматься может...
|
for ($j = 0; $j < $array_tip_n_size; ++$j)
echo '<option', ($array_tip_n_size[$j]&j)?'selected="selected"':null,'>' ... |
Часовой пояс GMT +3, время: 21:15. |