установка нескольких значений в 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, время: 20:18. |