#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>