powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / группа переключателей. уровни.
25 сообщений из 45, страница 1 из 2
группа переключателей. уровни.
    #35339491
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите плиз, как реализовать такую штуку: есть группа чекбоксов
<INPUT TYPE="checkbox" NAME="my_name">
чекбоксы логически разбиты по уровням. Допустим, это группы товаров.
группа1
..подгруппа1
......подподгруппа1
......подподгруппа2
..подруппа2
......подподгруппа3
......подподгруппа4
и т.д

всего три уровня.
Внимание, вопрос! Как сделать чтобы при выборе переключателя верхнего уровня автоматически ставились все галочки во всех подгуппах? Ну и снимались тоже. NAME="my_name" принципиально, впоследствии все галочки передаются этим массивом на сервер...
Заранее огромное спасибо, в js не особо силен....
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339556
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. А "группы - это чего", если список - бегать по чилдренам.
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339598
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
группы это товаров :-0)
в базе буду хранить только галочки третьей, самой нижней группы, так что можно чекбоксы первого и второго уровня обзывать по-любому, главное, чтобы при чеке автоматом ставились и снимались все подчиненные галочки.

Так вот и интересует, как синтаксически правильно описать что при он_клике пробежать по чилдренам и сделать checked=true
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339612
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем выглядеть будет условно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<INPUT TYPE="checkbox" NAME="1g">Группа  1 <br>
..<INPUT TYPE="checkbox" NAME="2g">подГруппа  1 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 1 >ПодподГруппа  1 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 2 >ПодподГруппа  2 <br>
..<INPUT TYPE="checkbox" NAME="2g">подГруппа  2 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 3 >ПодподГруппа  3 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 4 >ПодподГруппа  4 <br>
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339718
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<html>
<head>
<script>
function autoCheck(evt)
{
	evt = window.event || evt;
	var obj = evt.target || evt.srcElement;
	if (obj.tagName == 'INPUT')
	{
		var checkGroup = obj.parentNode.getElementsByTagName('INPUT');
		for (var i= 0 ; i<checkGroup.length; i++) checkGroup[i].checked = obj.checked;
	}
}
</script>
<style>div {margin-left:10px;}</style>
</head>
<body>
<form>
<div onclick="autoCheck(event)">
	<div><input type="checkbox" value="1"> 1 <br>
		<div><input type="checkbox" value="1.1"> 1 . 1 <br>
			<div><input type="checkbox" name="my_name" value="1.1.1"> 1 . 1 . 1 <br></div>
			<div><input type="checkbox" name="my_name" value="1.1.2"> 1 . 1 . 2 <br></div>
			<div><input type="checkbox" name="my_name" value="1.1.3"> 1 . 1 . 3 <br></div>
		</div>
		<div><input type="checkbox" name="my_name" value="1.2"> 1 . 2 <br>
			<div><input type="checkbox" name="my_name" value="1.2.1"> 1 . 2 . 1 <br></div>
			<div><input type="checkbox" name="my_name" value="1.2.2"> 1 . 2 . 2 <br></div>
		</div>
	</div>
	<div><input type="checkbox" name="my_name" value="2"> 2 <br></div>
</div>
</form>
</body>
</html>
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339731
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большая увага и спасибо, мистер!
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339733
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkk4434вобщем выглядеть будет условно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<INPUT TYPE="checkbox" NAME="1g">Группа  1 <br>
..<INPUT TYPE="checkbox" NAME="2g">подГруппа  1 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 1 >ПодподГруппа  1 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 2 >ПодподГруппа  2 <br>
..<INPUT TYPE="checkbox" NAME="2g">подГруппа  2 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 3 >ПодподГруппа  3 <br>
....<INPUT TYPE="checkbox" NAME="3g" value= 4 >ПодподГруппа  4 <br>
при такой структуре это будет синтаксически геморойно. Наследственность определяется исключительно положением инпута в innerHTML контейнера и количеством точек перед ним. То есть нужно брать innerHTML и парсить, парсить... Воспользуйтесь структурой illion.
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339757
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже меня опередили... Но вот мой вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<html>
<head>
<script language='javascript'>
function Start(Obj,Name) {
	var val=Obj.checked
	Name='grp'+Name
	Set(val,Name)
}
function Set(Val,Name) {
	var obj=document.getElementsByName(Name)
	for (var i= 0 ; i<obj.length; i++) {
		obj[i].checked=Val
		obj[i].onclick
	}
	i= 0 
	while (document.getElementsByName(Name+'_'+i).length> 0 ) {
		Set(Val,Name+'_'+i)
		i++
	}
}
</script>
</head>
<body>
<ul>
	<li><input type='checkbox' onclick='Start(this,"0")'>
	<ul>
		<li><input type='checkbox' name='grp0' onclick='Start(this,"0_0")'>
		<ul>
			<li><input type='checkbox' name='grp0_0'>
			<li><input type='checkbox' name='grp0_0'>
			<li><input type='checkbox' name='grp0_0'>
		</ul>
		<li><input type='checkbox' name='grp0' onclick='Start(this,"0_1")'>
		<ul>
			<li><input type='checkbox' name='grp0_1'>
			<li><input type='checkbox' name='grp0_1'>
			<li><input type='checkbox' name='grp0_1'>
		</ul>
	</ul>
	<li><input type='checkbox' onclick='Start(this,"1")'>
	<ul>
		<li><input type='checkbox' name='grp1' onclick='Start(this,"1_0")'>
		<ul>
			<li><input type='checkbox' name='grp1_0'>
			<li><input type='checkbox' name='grp1_0'>
			<li><input type='checkbox' name='grp1_0'>
		</ul>
		<li><input type='checkbox' name='grp1' onclick='Start(this,"1_1")'>
		<ul>
			<li><input type='checkbox' name='grp1_1'>
			<li><input type='checkbox' name='grp1_1'>
			<li><input type='checkbox' name='grp1_1'>
		</ul>
	</ul>
</ul>
</body>
</html>
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339903
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, всем спасибо, уже накидал черновичек..
а подскажите попутно, как при субмите НЕ посылась на сервер массивы первой и второй групп. Помню, есть какие-то методы чтобы именно не посылать, а не посылать пустые. У меня там жесткие входные параметры в процедуре, если не совпадают с субмитными, процедура валится. Можно конечно приминать и эти массивы, только для обеспечения спецификации, но это неспортивно как-то...
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339947
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkk4434как при субмите НЕ посылась на сервер массивы первой и второй групп
Как вариант, сделать их невидимыми... Такие элементы вроде не посылаются...
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35339965
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
типа hidden? прекрасно посылаются, к тому же всю фишку ломают. Или что-то другое имелось ввиду?
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340033
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не невидимыми, а disabled. Ну и имена у первой и второй групп постирать ( в моем примере кое-где остались).
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340083
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illionне невидимыми, а disabled
Вот, вот они...
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340344
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Код: plaintext
1.
2.
3.
4.
5.
6.
<li><input type='checkbox' name='grp0' onclick='Start(this,"0_0")'>
		<ul>
			<li><input type='checkbox' name='grp0_0'>
			<li><input type='checkbox' name='grp0_0'>
			<li><input type='checkbox' name='grp0_0'>
		</ul>

Можно вопрос - а в чем прикол вешать чекбоксы с одинаковыми именами? Или чтобы усугубить?
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340512
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Можно вопрос - а в чем прикол вешать чекбоксы с одинаковыми именами? Или чтобы усугубить?

изучайте HTML. Без HTML никуда. Одинаковый name определяет группу чекбоксов и собственно позволяет реализовать смысл чекбокса при передаче значений на сервер.
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340560
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Букварь. На букву R ("radiobuttons").
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340583
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Беру форму
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<html>
  <head></head>
  <body>
    <form action="test.php" method="post">
      <ul>
      	<li><input type='checkbox' name='grp0'>
      	<ul>
      		<li><input type='checkbox' name='grp0_0'>
      		<li><input type='checkbox' name='grp0_0'>
      		<li><input type='checkbox' name='grp0_0'>
      	</ul>
      	<li><input type='checkbox' name='grp0'>
      	<ul>
      		<li><input type='checkbox' name='grp0_1'>
      		<li><input type='checkbox' name='grp0_1'>
      		<li><input type='checkbox' name='grp0_1'>
      	</ul>
      </ul>
      <input type="submit">
    </form>
  </body>
</html>
Вне зависимости от того, какие и сколько чекбоксов я выбрал в каждой группе на сервере получаю
Array ( [grp0] => on [grp0_0] => on [grp0_1] => on )
что и ожидалось.

Вопрос остается тот же - зачем использовать чекбоксы с одинаковыми именами?

С уважением, Vasilisk
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340621
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
illionне невидимыми, а disabled. Ну и имена у первой и второй групп постирать ( в моем примере кое-где остались).

а как тогда их можно будет кнопать в форме? Имена постирать можно попробовать...
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340627
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или предлагается дизаблить при субмите? Тогда вопрос, как к ним обращаться? :-)
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340637
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Вне зависимости от того, какие и сколько чекбоксов я выбрал в каждой группе на сервере получаю
Array ( [grp0] => on [grp0_0] => on [grp0_1] => on )
что и ожидалось.

Вопрос остается тот же - зачем использовать чекбоксы с одинаковыми именами?

ох. О параметре value знаете? Пример: есть три чекбокса с одинаковым именем "технология" и тремя разными значениями value - "html","css","javascript". Отмечаете первый и третий чекбокс, жмете субмит и на сервер уходит технология=html;технология=javascript. На сервере принимаете массив технология=("html","javascript") и радуетесь.

P.S. да, в упомянутом Вами примере нет value. Но там его наличие не критично, т.к. пример демонстрирует другое.
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340650
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kkk4434или предлагается дизаблить при субмите? Тогда вопрос, как к ним обращаться? :-)
да, при субмите. Можно задать ненужным чекбоксам определенное имя и потом использовать массив, возвращаемый document.getElementsByName ("ненужные_чекбоксы")
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340658
kkk4434
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, буду рыть. Спасибо!
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340673
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illion
ох. О параметре value знаете? Пример: есть три чекбокса с одинаковым именем "технология" и тремя разными значениями value - "html","css","javascript". Отмечаете первый и третий чекбокс, жмете субмит и на сервер уходит технология=html;технология=javascript. На сервере принимаете массив технология=("html","javascript") и радуетесь.
И опять мимо. При указании value на сервер передаются только значение последнего выбраного чекбокса с таким именем (поверите, или код выложить?)

Вопрос тот же
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340748
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
И опять мимо. При указании value на сервер передаются только значение последнего выбраного чекбокса с таким именем (поверите, или код выложить?)


поверю что Вы не умеете принимать значения чекбокса. Курите маны по своему серверному языку программирования. Пример на хтмл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
файл "Noname.html":
<html>
<head></head>
<body>
<form action = "Noname.html" method="GET">
<input type="checkbox" name="tech" value="html">HTML
<input type="checkbox" name="tech" value="css">CSS
<input type="checkbox" name="tech" value="javascript">JavaScript
<input type="submit">
</form>
</body>
</html>
жмите субмит, читайте строку запроса браузера.
...
Рейтинг: 0 / 0
группа переключателей. уровни.
    #35340760
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illion
Я и так знал, но всё равно проверил (хе-хе!).
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / группа переключателей. уровни.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]