Автоматический выбор значения выпадающего списка

#php #postgresql #drop-down-menu

#php #postgresql #выпадающее меню

Вопрос:

у меня есть выпадающий список, подобный этому:

 <select id="cbvms" name="cbvms" class="SelectList">
        <?php
        foreach($vm_array as $key => $value)
        {
            if(strcmp($vmguid,$key) == 0)
                echo "<option value="".$key."" selected="".$value."">".$value."</option>";
            else
                //echo "<option value="".$key."">".$value."</option>";
                echo "<option value="".$key."" title="".$value."">".$value."</option>";
        }
        ?>
        </select>
    and in my database i have an option value like this ....
  

Имя виртуальной машины:

  172.125.4.186
 172.125.4.101
 172.125.4.194
 172.125.4.126
 172.125.4.167
 172.125.4.102
 172.125.4.171
 172.125.4.118
 172.125.4.169
 Microsoft Windows Server 2003 Enterprise x64 Edition 5.2.3790 xen - 121 - centos 5.4 - ip 101
 salman
 saman
 172.125.4.198
 172.125.4.200
 172.125.4.189
 172.125.4.191
  

теперь я хочу, чтобы, когда кто-то выбирает любое значение параметра, как показано выше, мой выпадающий список автоматически изменялся

например: когда пользователь выбирает, 172.125.4.169 тогда оно соответствует размеру выпадающего списка, или когда пользователь выбирает, "Microsoft Windows Server 2003 Enterprise x64 Edition 5.2.3790 xen - 121 - centos 5.4 - ip 101" тогда оно также соответствует размеру выпадающего списка.

Прямо сейчас, если имя виртуальной машины длинное, поле выпадающего списка для выбора виртуальной машины выходит за пределы диапазона….

Комментарии:

1. я использую style =»width: 120px;» но после этого, когда значение моего параметра длинное, как «Microsoft Windows Server 2003 Enterprise x64 Edition 5.2.3790 xen — 121 — centos 5.4 — ip 101″… это не показывает все значение.

Ответ №1:

используйте это

 <select id="cbvms" name="cbvms" class="SelectList" style="width:120px;"> 
  

Комментарии:

1. смотрите мой комментарий, я использую это, но это исправляет только ширину. в случае большого значения, такого как «Microsoft Windows Server 2003 Enterprise x64 Edition 5.2.3790 xen — 121 — centos 5.4 — ip 101», в моем выпадающем списке отображается только Microsoft Windows из-за фиксированной ширины….

Ответ №2:

Я боюсь, что элементы управления формой, как известно, сложно стилизовать. Даже если вы делаете что-то динамически с помощью JavaScript, вам придется приложить много усилий, чтобы сделать это согласованным во всех браузерах. Если ваша пользовательская база достаточно узка, вы могли бы поиграть с такими вещами, как свойства overflow или min-width , и посмотреть, что они делают в выбранном вами браузере. Некоторые из них имеют правила, специфичные для браузера, или имеют скрытые элементы внутри, которые имеют эффекты, отличные от их контейнеров.

Я знаю, что это не очень помогает. Извините.

Ответ №3:

для этого вам нужно использовать jquery

  if ($.browser.msie) $('select.SelectList')
                    .bind('focus mouseover', function() { $(this).addClass('expand').removeClass('clicked'); })
                    .bind('click', function() { $(this).toggleClass('clicked'); })
                    .bind('mouseout', function() { if (!$(this).hasClass('clicked')) { $(this).removeClass('expand'); }})
                    .bind('blur', function() { $(this).removeClass('expand clicked'); });
  

CSS:

  select {
                width: 120px; /* Or whatever width you want. */
            }
            select.expand {
                width: auto;
            }
  

Все, что вам нужно сделать, это добавить класс SelectList к элементам выпадающего списка, о которых идет речь.

 <select id="cbvms" name="cbvms" class="SelectList">
<?php
        foreach($vm_array as $key => $value)
        {
            if(strcmp($vmguid,$key) == 0)
                echo "<option value="".$key."" selected>".$value."</option>";
            else
                echo "<option value="".$key."" title="".$value."">".$value."</option>";
        }
        ?>
        </select>