Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Замена очередного списка в зависимости от выбора в предыдущем списке?

Сообщения:  [1-3] 

 
 автор: Alex Boxgorn   (28.02.2007 в 14:13)   письмо автору
 
   для: Sl   (28.02.2007 в 13:47)
 

Спасибо огромное, очень помогли!!!

   
 
 автор: 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; 

 

   
 
 автор: Alex Boxgorn   (28.02.2007 в 12:59)   письмо автору
 
 

Добрый день коллеги!!
Подскажите пожалуйста, как можно реализовать такую вещь.
Есть выпадающие списки - страна, регион, город, все это на одной страничке.
Как можно сделать так, чтобы после выбора страны в одном списке, в следующем списке появился именно список регионов данной страны и т.д. в третьем списке появился перечень городов в зависимости от выбора региона.
Подобное сделано на loveplanet.ru. Может есть такие уже наработки?
Спасибо вам заранее!!

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования