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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем LOKI, 7 дек 2006.

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

    LOKI Гость

    Помогите пожалуйста настройть этот код, чтобы были доступны для выбора все страны (в данном коде Нигерия), даже если к ним не заданы города. И чтобы пока страна не выбрана, город нельзя будет выбрать.
    Код (Text):
    <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 Гость

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

    LOKI Гость

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

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