Выбор географического месторасположения

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем chuvash, 2 авг 2005.

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

    chuvash Гость

    Может кто знает, где можно было бы достать систему выбора географического месторасположения?
    Потому-что вручную - ну очень долго. ;)
     
  2. Vagor.ini

    Vagor.ini Гость

    Для: chuvash
    Что это такое? Задание координат?
     
  3. chuvash

    chuvash Гость

    Да, просто опции выбора места проживания. Человек заходит на сайт, и выбирает сначала - страну, потом - регион и родной город.
     
  4. Vagor.ini

    Vagor.ini Гость

    Ну так сразу и говорил, что на сайте. Лови скрипт, модифицируешь (регион), вставишь свои страны и города и работай:unsure:
    Код (Text):
    <!-- Данный скрипт при правильной настройке селектирует второй combobox относительно первого -->
    <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"] = "Украина";

    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>
     
  5. Silaev

    Silaev Гость

    ДВС!
    А как в данном скрипте прописать чтоб при выборе, например, "Беларусь" -> "Минск" он автоматически загружал, например, страничку "minsk.htm"?
     
  6. Andrew Stephanoff

    Andrew Stephanoff Гость

    Код (Text):
    .onclick = function() {...}
     
  7. Silaev

    Silaev Гость

    Для: Andrew Stephanoff
    Чета я туплю...
    Куда подставлять эту функцию? И где в ней адрес странички прописывать?
     
  8. Tisha

    Tisha Гость

    2 Silaev

    Функцию нужно поставить в тот элемент формы, где в происходит выбор города.

    А описать ее нужно там, где и все остальные функции - в head документа или в файле, где эти скрипты хранятся.

    В саму функцию нужно вставить код, который открывает нужную тебе тсраницу
     
Загрузка...
Статус темы:
Закрыта.

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