1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите настроить скриптик

Тема в разделе "Web - программирование", создана пользователем LOKI, 7 дек 2006.

Статус темы:
Закрыта.
  1. LOKI

    LOKI Гость

    Репутация:
    0
    Помогите пожалуйста настройть этот код, чтобы были доступны для выбора все страны (в данном коде Нигерия), даже если к ним не заданы города. И чтобы пока страна не выбрана, город нельзя будет выбрать.
    Код:
    <html> 
    <head> 
    
    <title>Тест</title> 
    
    <script language="JavaScript"> 
    
    function cGorod(strana_in, gorod_in) 
    { 
    this.gorod = gorod_in; 
    this.strana = strana_in; 
    } 
    
    Strani = new Array(); 
    Strani["1"] = "Германия"; 
    Strani["2"] = "Россия"; 
    Strani["3"] = "Франция"; 
    Strani["4"] = "Нигерия"; 
    
    Goroda = new Array(); 
    Goroda["Берлин"] = new cGorod(1,'Берлин'); 
    Goroda["Гамбург"] = new cGorod(1,'Гамбург'); 
    Goroda["Бонн"] = new cGorod(1,'Бонн'); 
    Goroda["Москва"] = new cGorod(2,'Москва'); 
    Goroda["Санкт-Петербург"] = new cGorod(2,'Санкт-Петербург'); 
    Goroda["Нижний Новгород"] = new cGorod(2,'Нижний Новгород'); 
    Goroda["Париж"] = new cGorod(3,'Париж'); 
    Goroda["Марсель"] = new cGorod(3,'Марсель'); 
    Goroda["Бордо"] = new cGorod(3,'Бордо'); 
    
    function addgorod(key) 
    { 
    document.searchfrm.gorod.length++; 
    document.searchfrm.gorod[document.searchfrm.gorod.length-1].text = gorod[key]; 
    document.searchfrm.gorod[document.searchfrm.gorod.length-1].value = key; 
    } 
    
    
    function chkkeyword(words,word) { 
    for(a in words) { 
    if(words[a]==word) 
    { 
    return true; 
    } 
    } 
    return false; 
    } 
    
    function checkall(strana,gorod,i) 
    { 
    if (strana=="") 
    { 
    if(chkkeyword(Goroda[i].gorod,gorod) || gorod==999) 
    return true; 
    }// end if 
    
    else { 
    if (Goroda[i].strana==strana || strana==999) 
    if(Goroda[i].gorod==gorod || gorod==999) 
    return true; 
    }//end else 
    return false; 
    } 
    
    function creategorod(strana,gorod) 
    { 
    document.searchfrm.gorod.length=2; 
    document.searchfrm.gorod[0].value = 999; 
    document.searchfrm.gorod[0].text = "все"; 
    k=1; 
    for (i in Goroda) 
    { 
    if (checkall(strana,999,i)) 
    { 
    document.searchfrm.gorod[k].value=i; 
    document.searchfrm.gorod[k].text=Goroda[i].gorod; 
    document.searchfrm.gorod.length=k+2; 
    k++; 
    } 
    } 
    document.searchfrm.gorod.length=k; 
    } 
    
    function createstrana(strana,gorod) 
    { 
    document.searchfrm.strana.length=2; 
    document.searchfrm.strana[0].value = 999; 
    document.searchfrm.strana[0].text = "все"; 
    k=1; 
    for (i in Goroda) 
    { 
    
    if (checkall(999,gorod,i)) 
    {if (document.searchfrm.strana[k-1].text!=Strani[Goroda[i].strana]) 
    { 
    document.searchfrm.strana[k].value=Goroda[i].strana; 
    document.searchfrm.strana[k].text=Strani[Goroda[i].strana]; 
    document.searchfrm.strana.length=k+2; 
    k++; 
    } 
    } //end if 
    
    }//end for 
    
    document.searchfrm.strana.length=k; 
    } 
    
    function reselect(field,check) 
    { 
    for (i=0;i<=field.length-1;i++) 
    { 
    if (field[i].value==check) 
    { 
    field.selectedIndex = i; 
    } 
    } 
    } 
    
    function change(what) 
    { 
    var selectedStrana = document.searchfrm.strana[document.searchfrm.strana.selectedIndex].value; 
    /*tmp = document.searchfrm.gorod.selectedIndex; 
    if(tmp >= 0) 
    selectedGorod = document.searchfrm.gorod[tmp].value; 
    else selectedGorod = 0;*/ 
    var selectedGorod = document.searchfrm.gorod[document.searchfrm.gorod.selectedIndex].value; 
    
    createstrana(selectedStrana,selectedGorod); 
    creategorod(selectedStrana,selectedGorod); 
    
    reselect (document.searchfrm.strana,selectedStrana); 
    reselect (document.searchfrm.gorod,selectedGorod); 
    
    } 
    
    function makelist() 
    { 
    document.searchfrm.strana.length = 1; 
    document.searchfrm.strana[0].value = 999; 
    document.searchfrm.strana[0].text = "все"; 
    
    for(i in Strani) 
    { 
    document.searchfrm.strana.length++; 
    l = document.searchfrm.strana.length; 
    document.searchfrm.strana[l-1].value = i; 
    document.searchfrm.strana[l-1].text = Strani[i]; 
    } 
    } 
    
    </script> 
    
    </head> 
    
    <br> 
    
    <form method=GET action="search.cgi" name="searchfrm"> 
    <b>Город:</b> 
    <BR> 
    <select style="width: 150" name=strana onChange="change()" size="1"> 
    <option value="999">** Ошибка **</option> 
    <option value=*></option> 
    </select> 
    <BR> 
    <b>Район:</b><BR> 
    <select style="width: 150" name=gorod onChange="change()" > 
    <option value="999">** Ошибка **</option> 
    <option value=*></option> 
    </select> 
    
    </form> 
    
    <script language="JavaScript"> 
    <!-- 
    
    
    makelist(); 
    change(); 
    //--> 
    </script> 
    
    </body> 
    
    </html>
     
  2. Gisma

    Gisma Гость

    Репутация:
    0
    задай конкретно вопрос, т.е. корректно поставь задачу. Мы тоже любим считать свое время
     
  3. LOKI

    LOKI Гость

    Репутация:
    0
    Задача такова:
    Этот код работает, но позволяет выбирать только из тех стран к которым привязаны города.
    В данном коде к Россие, Германии и Франции заданы по 3 города, а к Нигерии ни одного поэтому она и не выводиться, а мне нужно чтобы выводилась.
    В конечном итоге я хочу получить скрипт действующий также как соответствующая часть на этой странице.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей