Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как свзяать два списка?

13K
10 ноября 2005 года
edson
5 / / 10.11.2005
Вот такая задача -

передаю странице два массива -

countries=array(...
RU->Russian
...
}
cities=array(
...
RU->...,Moscow,S-Peterburg,...
)

Как можно связать эти два массива списками так, чтобы при выборе значения из первого ссписка (массив countries) - выбиралось соответ. значение из второго массива и отображалось во втором списке.
7.9K
10 ноября 2005 года
ШМИТ
47 / / 17.10.2005
Цитата:
Originally posted by edson
Вот такая задача -

передаю странице два массива -

countries=array(...
RU->Russian
...
}
cities=array(
...
RU->...,Moscow,S-Peterburg,...
)

Как можно связать эти два массива списками так, чтобы при выборе значения из первого ссписка (массив countries) - выбиралось соответ. значение из второго массива и отображалось во втором списке.



Ты хочешь это делать динамически или через перезагрузку страницы?

13K
10 ноября 2005 года
edson
5 / / 10.11.2005
Цитата:
Originally posted by ШМИТ
Ты хочешь это делать динамически или через перезагрузку страницы?



Динамически.

Я думал свормировать два массива из этих двух уже в странице типа :

Array1[0]='Russia';
Array2['Russia']='Moscow,S-Peterburg,...';
.....

И уже из этих данных формировать значения для второго списка, но я не силён в JS поэтому прошу помощи...

7.9K
11 ноября 2005 года
ШМИТ
47 / / 17.10.2005
Цитата:
Originally posted by edson
Динамически.

Я думал свормировать два массива из этих двух уже в странице типа :

Array1[0]='Russia';
Array2['Russia']='Moscow,S-Peterburg,...';
.....

И уже из этих данных формировать значения для второго списка, но я не силён в JS поэтому прошу помощи...


Я тут где-то недавно отвечал на такой же вопрос. Поищи. Должно быть.

7.3K
11 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by edson
Вот такая задача -

передаю странице два массива -

countries=array(...
RU->Russian
...
}
cities=array(
...
RU->...,Moscow,S-Peterburg,...
)

Как можно связать эти два массива списками так, чтобы при выборе значения из первого ссписка (массив countries) - выбиралось соответ. значение из второго массива и отображалось во втором списке.





Есть два способа:

1) Способ 1

Код:
<Html>
<Head>
 <Script Language="JavaScript">
  var maxLength = 20;
  website = new Array;
  website[0] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 1";
  website[1] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 2";
  website[2] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 3";
  website[3] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 4";

  var trueLength = website.length;
  var lst = website.length;

  url = new Array;
  url[0] = "#";
  url[1] = "#";
  url[2] = "#";
  url[3] = "#";
  url[4] = "#";

  ccselect = new Array;
  ccselect[0] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 1";
  ccselect[1] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 2";
  ccselect[2] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 3";
  ccselect[3] = "&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255; - 4";

  function changePage()
   {menuNum = document.ccDoubleList.ccBitsyG.selectedIndex;
    if (menuNum == null)
     {alert("Please select a category from the menu.");
      return;}
    else
     {i = document.ccDoubleList.ccDoubleZ.selectedIndex;
      window.location.href = url;}}

  function changeMenu()
   {website.length = 0;
    menuNum = document.ccDoubleList.ccBitsyG.selectedIndex;
    if (menuNum == null) return;
    if (menuNum == 0)
     {website = new Array;
      website[0] = new Option("&#207;&#243;&#237;&#234;&#242; 1.1");
      website[1] = new Option("&#207;&#243;&#237;&#234;&#242; 1.2");
      website[2] = new Option("&#207;&#243;&#237;&#234;&#242; 1.3");
      website[3] = new Option("&#207;&#243;&#237;&#234;&#242; 1.4");
      website[4] = new Option("&#207;&#243;&#237;&#234;&#242; 1.5");
      url = new Array;
      url[0] = "#";
      url[1] = "#";
      url[2] = "#";
      url[3] = "#";
      url[4] = "#";
     }
    if (menuNum == 1)
     {website = new Array;
      website[0] = new Option("&#207;&#243;&#237;&#234;&#242; 2.1");
      website[1] = new Option("&#207;&#243;&#237;&#234;&#242; 2.2");
      website[2] = new Option("&#207;&#243;&#237;&#234;&#242; 2.3");
      website[3] = new Option("&#207;&#243;&#237;&#234;&#242; 2.4");
      website[4] = new Option("&#207;&#243;&#237;&#234;&#242; 2.5");
      url = new Array;
      url[0] = "#";
      url[1] = "#";
      url[2] = "#";
      url[3] = "#";
      url[4] = "#";
     }

    if (menuNum == 2)
     {website = new Array;
      website[0] = new Option("&#207;&#243;&#237;&#234;&#242; 3.1");
      website[1] = new Option("&#207;&#243;&#237;&#234;&#242; 3.2");
      website[2] = new Option("&#207;&#243;&#237;&#234;&#242; 3.3");
      website[3] = new Option("&#207;&#243;&#237;&#234;&#242; 3.4");
      website[4] = new Option("&#207;&#243;&#237;&#234;&#242; 3.5");
      url = new Array;
      url[0] = "#";
      url[1] = "#";
      url[2] = "#";
      url[3] = "#";
      url[4] = "#";
     }

    if (menuNum == 3)
     {website = new Array;
      website[0] = new Option("&#207;&#243;&#237;&#234;&#242; 4.1");
      website[1] = new Option("&#207;&#243;&#237;&#234;&#242; 4.2");
      website[2] = new Option("&#207;&#243;&#237;&#234;&#242; 4.3");
      website[3] = new Option("&#207;&#243;&#237;&#234;&#242; 4.4");
      website[4] = new Option("&#207;&#243;&#237;&#234;&#242; 4.5");
      url = new Array;
      url[0] = "#";
      url[1] = "#";
      url[2] = "#";
      url[3] = "#";
      url[4] = "#";
     }

     tot = website.length;
     for (i = lst; i > 0; i--)
      {document.ccDoubleList.ccDoubleZ.options = null;}
       for (i = 0; i < tot; i++)
        {document.ccDoubleList.ccDoubleZ.options = website;}
       document.ccDoubleList.ccDoubleZ.options[0].selected = true;
       lst = website.length;}
 </Script>
</Head>
<Body BgColor="#ffffff">
 <Script Language="JavaScript">
  with (document)
   {writeln('<Center>');
    writeln('<Table Border=0 CellSpacing=0 CellPadding=3>');
    writeln('<Tr><Form Name="ccDoubleList"><Td Align=Left>');
    writeln('<Font Face=Verdana,Tahoma,Arial Size=2 Color=#000000>&#202;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#255;</Font>
');
    writeln('<Select Name="ccBitsyG" &#111;&#110;Change="changeMenu(this.form)">');
    tot = ccselect.length;
    for (i = 0; i < tot; i++)
     writeln("<Option>" +ccselect);
     writeln("</Select>");
     writeln('</Td><Td>');
     writeln('<Font Face=Verdana,Tahoma,Arial Size=2 Color=#000000>&#204;&#229;&#237;&#254;</Font>
');
     writeln('<Select Name="ccDoubleZ">');
    for (i = 0; i < maxLength; i++)
     writeln("<OPTION>" +website);
     writeln("</Select>");
    for (i = maxLength; i > trueLength; i--)
     {ccDoubleList.ccDoubleZ.options = null;}
    writeln('</Td><Td Valign=bottom><A Href="java script:changePage();">');
     writeln('</A>');
     writeln('</Td></Tr>');
     changeMenu();
     writeln('</Form>');
     writeln('</Table>');
     writeln('</Center>');
   }
 </Script>
</Body>
</Html>
7.3K
11 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by edson
Вот такая задача -

передаю странице два массива -

countries=array(...
RU->Russian
...
}
cities=array(
...
RU->...,Moscow,S-Peterburg,...
)

Как можно связать эти два массива списками так, чтобы при выборе значения из первого ссписка (массив countries) - выбиралось соответ. значение из второго массива и отображалось во втором списке.





2) Способ 2


Код:
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
var city = new Array();
city['1'] = "all|Поиск по всему сайту"
city['2'] = "news|Поиск в новостях"
city['3'] = "1|Уход за кожей|2|Декоративная косметика|3|SPA&Уход за телом|4|Ароматы"
<!--
function Build(selSelect,selSelected)
{
    var tmp = new Array();
    var s;
    s = '<select name="city" style="width:170;">';
    tmp = city[selSelect].split('|');

    for (j=0; j < tmp.length; j++) {
        if ((j % 2) == 0) {
            if (tmp[j]==selSelected){
                s = s + '<option value="' + tmp[j] + '" selected>';
            }
            else{
            s = s + '<option value="' + tmp[j] + '">';
            }
        } else {
            s = s + tmp[j];    
        }
    }
    s = s + '</select>';
    document.write(s);
}

function MakeIt(f)
{
   
    var k = f.options[f.selectedIndex].value;
    var tmp = new Array();
    var s, j;
    s = '<select name="city" style="width:170;">';
if (city[k] != null) {
    tmp = city[k].split('|');

    for (j=0; j < tmp.length; j++) {
        if ((j % 2) == 0) {
            s = s + '<option value="' + tmp[j] + '">';
        } else {
            s = s + tmp[j];    
        }
    }
 }
    s = s + '</select>';
    sel.innerHTML = s;
}
</script>  
</head>
<body>
<form name="frmSiteSearch" method="post" action="page.php?page_id=192&lang=1">
<select name="search_type" style="width:170;" class="textbox" &#111;&#110;Change="MakeIt(this);">
<option value="1">Поиск по всему сайту</option>
<option value="2">Поиск в новостях</option>
<option value="3">Поиск в продуктах</option>
</select>
<div id="sel">
<script language="javascript">
    Build(1,'all');
</script>
</div>
</form>
</body>
</html>
7.3K
11 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Как динамически создать думаю сам дойдешь :-)
13K
11 ноября 2005 года
edson
5 / / 10.11.2005
Цитата:
Originally posted by S_K_I_V--WEBER
Как динамически создать думаю сам дойдешь :-)



Огромное человеческое спасибо...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог