|
| |
|
|
| |
для: Sl
(28.02.2007 в 13:47)
| | | Спасибо огромное, очень помогли!!! | |
| |
|
|
| |
|
|
| |
для: Alex Boxgorn
(28.02.2007 в 12:59)
| | | Этот пример можно полностью осуществить с помощью javascript
menuCombo.html
<script language="javascript" src="menuCombo.js"></script>
<form>
<select name="selectMenu1" size="1" style="width:200px;"
onchange="return selectMenu1Item(this);">
<script language="javascript">
loadMenu1("selectMenu1");
</script>
</select>
<select name="selectMenu2" size="1" style="width:200px;"
onchange="return selectMenu2Item(this);">
<script language="javascript">
loadMenu2("selectMenu2");
</script>
</select>
<input type="button" value="Перейти" onclick="return changeURL(this);">
</form>
|
menuCombo.js
// наличие кнопки для перехода на другую страницу
// поставьте true - если переход осуществляется по кнопке (или картинке)
// поставьте false - если переход происходит сразу после выбора элемента из выпадающего списка
var bExistButton = true;
// двумерный массив с названиями (нечетные элементы) и URL (четные элементы) ссылок
// если хотите, чтобы пункт в первом выпадающем списке ссылался на URL,
// то в следующем элементе массива укажите адрес этой ссылки,
// если же этот пункт является названием для группы ссылок для второго выпадающего списка,
// то следующий элемент массива sMenuItems должен является двумерным массивом, где аналогично
// sMenuItems нечетные элементы являются названиями пунктов для второго выпадающего списка,
// а четные - ссылками.
var sMenuItems = new Array(
"Полезные программы",
new Array(
"Htmlpad Fisherman", "http://kimsite.wallst.ru/htmlpad/",
"Microsoft Windows", "http://www.microsoft.ru/"
)
,
"Яndex", "http://www.yandex.ru"
,
"Архив новостей",
new Array(
"За 2002 год", "archives.php?year=2002",
"За 2003 год", "archives.php?year=2003",
"За 2004 год", "archives.php?year=2004"
)
);
var sNameMenu1, sNameMenu2;
function loadMenu1(name)
{
var iI;
sNameMenu1 = name;
for (iI = 0; iI < sMenuItems.length / 2; iI++)
{
if (iI == 0)
document.write("<option selected>" + sMenuItems[2*iI] + "</option>");
else
document.write("<option>" + sMenuItems[2*iI] + "</option>");
}
}
function loadMenu2(name)
{
var iI, iJ;
sNameMenu2 = name;
iJ = 0;
if (sMenuItems[2*iJ+1][0] != null)
{
for (iI = 0; iI < sMenuItems[2*iJ+1].length / 2; iI++)
{
if (iI == 0)
document.write("<option selected>" + sMenuItems[2*iJ+1][2*iI] + "</option>");
else
document.write("<option>" + sMenuItems[2*iJ+1][2*iI] + "</option>");
}
}
}
function getObject(name, obj)
{
var formNeed = obj.form;
var iI;
for (iI = 0; iI < formNeed.elements.length; iI++)
{
if (formNeed.elements[iI].name == name)
return formNeed.elements[iI];
}
}
function clearOptions(obj)
{
var iI;
var iC = obj.options.length - 1;
for (iI = iC; iI >= 0; iI--)
obj.remove(iI);
}
function selectMenu1Item(obj)
{
var iI;
var iJ = obj.selectedIndex;
var objSelect2 = getObject(sNameMenu2, obj);
clearOptions(objSelect2);
if (sMenuItems[2*iJ+1][0] == null)
{
if (bExistButton == false)
return changeURL(obj);
objSelect2.options[0] = new Option("");
objSelect2.disabled = true;
}
else
{
objSelect2.disabled = false;
for (iI = 0; iI < sMenuItems[2*iJ+1].length / 2; iI++)
objSelect2.options[iI] = new Option(sMenuItems[2*iJ+1][2*iI]);
}
return true;
}
function selectMenu2Item(obj)
{
if (bExistButton == false)
return changeURL(obj);
return true;
}
function changeURL(obj)
{
var objSelect1 = getObject(sNameMenu1, obj);
var objSelect2 = getObject(sNameMenu2, obj);
var iI = objSelect1.selectedIndex;
var iJ = objSelect2.selectedIndex;
if (sMenuItems[2*iI+1][0] == null)
top.location.href = sMenuItems[2*iI+1];
else
top.location.href = sMenuItems[2*iI+1][2*iJ+1];
return true;
}
|
| |
| |
|
|
| |
|
|
| | Добрый день коллеги!!
Подскажите пожалуйста, как можно реализовать такую вещь.
Есть выпадающие списки - страна, регион, город, все это на одной страничке.
Как можно сделать так, чтобы после выбора страны в одном списке, в следующем списке появился именно список регионов данной страны и т.д. в третьем списке появился перечень городов в зависимости от выбора региона.
Подобное сделано на loveplanet.ru. Может есть такие уже наработки?
Спасибо вам заранее!! | |
| |
|
|
|