Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Динамический выбор, несколько уровней. (https://javascript.ru/forum/misc/3014-dinamicheskijj-vybor-neskolko-urovnejj.html)

ursa 09.03.2009 23:05

Динамический выбор, несколько уровней.
 
Доброе время суток!
У меня такое затруднение(я плохо смыслю в JS, ксожалению)
Мне надо сделать динамические списки выпадающего меню т.е. от выбора в первом выпадающем меню зависит что будет выпадать в другом.
Пример: при выборе улицы Ленина появляется номера домов которые находятся на этой улице, соответственно то же самое при выборе улицы Маркса, к примеру. Затем фамилии жителей этих домов.

Зарание примногоблагодарен, а то не знаю как дальше:(

Gvozd 09.03.2009 23:20

Цитата:

Сообщение от ursa
Зарание примногоблагодарен, а то не знаю как дальше

дальше чем что?я так смотрю дальше идеи вы не продвинулись.
прочитайте эту статью: AJAX

по поводу же алгоритма, подобные темы уже рассмотривались на форуме:
тег option <<многоуровневый>>
помимо этого просмотрите все темы выдаваемые поиском по форуму по слову "SELECT"
после прочтения вышеуказанного материала у вас должно получится
PS помимо указанных выше материалов, необходимых для решения вашей конкретной задачи, советую прочитать весь цикл статей на этом сайте, с целью большего владения JS

ursa 09.03.2009 23:56

Спасибо за ссылки!
 
Спасибо за ссылки!
Я так понимаю AJAX это PHP, мне надо сделать всё на JS.

Я кое что читаю сейчас, вот что есть:

<html>
<head>
<title>Выберите</title>

<script>
function dinform() {
if (document.forms["list"].razd1.options[0].selected) {
document.forms["list"].razd2.options[0].selected = true
document.forms["list"].razd2.options[1].selected = true
}
if (document.forms["list"].razd1.options[1].selected) {
document.forms["list"].razd2.options[2].selected = true
document.forms["list"].razd2.options[3].selected = true
}
}
</script>

</head>

<body>

<form name="list">
<select name="razd1" onChange="dinform()">
<option value=1>Раздел1
<option value=2>Раздел2
</select>
<br><br>
<select name="razd2">
<option value=1>Раздел11
<option value=2>Раздел12
<option value=3>Раздел21
<option value=4>Раздел22
</select>
</form>

</body>
</html>

Мне бы возможность добавить\удалить раздел впервый и второй и последующие списки. Это через var только?
А вывод текстов из файла только через AJAX?

Gvozd 10.03.2009 01:25

Убедительная просьба:оборачивайте куски кода в специальные теги, а то читать невозможно.

Цитата:

Сообщение от ursa
Я так понимаю AJAX это PHP, мне надо сделать всё на JS.

вы внимательно читали?
Нет, AJAX это не PHP.
но AJAX позваляет JS делать запрос на сервер.к примеру к PHP скрипту.но не обязательно.

к тому же у вас явно не только с JS проблемы. С HTML у вас тоже сильные проблемы.Вас не учили, что теги в большинстве своем следует закрывать.
посмотрите как здесь сделан список, и найдите отличия от вашего HTML-а

Цитата:

Сообщение от ursa
Мне бы возможность добавить\удалить раздел впервый и второй и последующие списки. Это через var только?

нихрина непоянтно.выражайтесь яснее

Цитата:

Сообщение от ursa
А вывод текстов из файла только через AJAX?

ну, еще через iframe можно.


судя по стилю ваших вопросов вас следует:
1)чуточку больше изучить HTML,JS,etc...
вы вообще по ходу не владеете материалом.
2)закончить хотя бы среднее общеобразовательное учреждение.или сходить на какие-нибудь курсы по улучшению своей речи.или что-то в подобном роде.
короче говоря, если первый ваш пост был понятен, то второй практически не поддается полному осмыслению.выражайтесь яснее

PS если вам говорят прочитать какой-то материал, то наверно следует так и сделать.
пройдите и прочитайте материалы указанные в моем первом посте.и не халявте, пройдитесь по всем подразделам статьи, и по всем темам, указанным мною

ursa 10.03.2009 22:15

Цитата:

Сообщение от Gvozd
что теги в большинстве своем следует закрывать.

Да спасибо, закрою. В данном случае я думал можно и не закрывать, видел подобный пример...
Цитата:

Сообщение от Gvozd
нихрина непоянтно.выражайтесь яснее

Вот пример с домами...
при выборе улицы Ленина появляется номера домов которые находятся на этой улице, причем номера домов появляются в новом выпадающем списке!
Я хочу, что бы была возможность добавлять, заменять и удалять названия улиц, а так же дома которые находятся на этих улицах. И соответственно был вопрос:
Цитата:

Сообщение от Gvozd
Это через var только?

Так понятнее??

Да я конечно прочту то что вы мне дали. Спасибо.

Gvozd 11.03.2009 20:40

Цитата:

Сообщение от ursa
Я так понимаю AJAX это PHP, мне надо сделать всё на JS.

такую вещь без ПХП будет затруднительно сделать.
где и как вы предполагаете хранить названия улиц, соответствующие им номера домов, и фамилии жильцов?
если статично внутри JS-кода, то это будет гемороем вбивать все руками.
к тому же этот кусок кода будет слишком много весить(для более-менее порядочного количества улиц-домов-людей)

Если вы хотите постоянно редактировать этот список, то это вообще нереально делать вручную в JS-коде,если вы конечно немного ленивый (как и многие) человек, имеющий скрверную привычку спать раз в сутки, и заниматся посторонними делами

лучше всего будет, если вы задействуете PHP+MySQL, например для хранения всех этих данных. что же по поводу линамического формирования option-а, то я дал достаточно ссылок, чтобы начать реализовывать клиентскую часть.

В общем, всем необходимым я вас снабдил.пробуйте.если не будет получатся обращайтесь с конкретными вопросами

PS повторюсь.в принципе можно и без PHP+MySQL.но при этом будут матерится все.вы, когда будете добавлять десяток новых улиц,, с новыми домами.пользователи, которые будут грузить многометровый список улиц

ursa 11.03.2009 21:06

Спасибо за развёрнутый ответ! Да, но мне надо занести не много данных, да и редактироватся он будет максмум раз в полгода!
Вся загвозда в том, что всё должно быть в JS!

Gvozd 11.03.2009 21:39

задайте массив в таком виде:
var list={
'ул.Ленина':{
	'12':['Иванов','Петров'],
	'13':['Иванов','Петров'],
	'14':['Иванов','Петров']
	},
'ул.Конной Армии':{
	'12':['Иванов','Петров'],
	'13':['Иванов','Петров'],
	'14':['Иванов','Петров']
	}
};
alert(list['ул.Конной Армии']['13'][1]);

теперь вы можете работать с такого рода списком, без использования PHP+MySQL

AzriMan 12.03.2009 09:58

немного не по теме
Цитата:

Сообщение от ursa (Сообщение 13912)
Спасибо за ссылки!
Я так понимаю AJAX это PHP, мне надо сделать всё на JS.
......

В первой ссылке ведь русским по-белому написано:
Цитата:

...AJAX - это уже javascript, почему бы не добавить еще javascript? ...
*WALL*

lliberty 12.03.2009 11:20

//Допустим у вас есть списки:
<SELECT id="street" onchange="changestreet();"></SELECT>
<SELECT id="doma" onchange="changedoml();"></SELECT>
.....
// Далее в скрипте
Списки каким-то образом заполняются начальными значениями
а потом идет обработчик
function changestreet(){
 val=document.getElementById("street").value;
 sel = document.getElementById("doma"); //Получаем ссылку на список "дома"
 sel.options.length = 0; //обнуляем старый список домов

 if(val=='Маркса-Энгельса'){
  //Заполняем список номеров домов по новой улице
 }
 
}


Часовой пояс GMT +3, время: 20:15.