С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
4 / 4 / 0
Регистрация: 07.08.2015
Сообщений: 102

Обработка чекбоксов JS

09.03.2017, 15:15. Показов 6534. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые программисты. Подскажите пожалуйста немного по такому вопросу - есть два форма, в ней два input chekbox (две группы чекбоксов) - первая группа - тип вещей. вторая группа - подтип.

Пытаюсь прописать, чтобы в соответствии с выбранными типами вещей (отмеченными чекбоксами) в первом input checkbox, во втором выводились только чекбоксы (подтипы вещей) в зависимости от выбранных типов в первом input checkbox. В разделах PHP не оставили к сожалению ни оного комментария на эту тему. слышал мнение, что эту задачу надо реализовывать на js. я зеленый новичек, на js выполнял только самые стандартные - отбор элементов, событие-действие, присваивание классов и т.д. Подскажите пожалуйста, можно ли реализовать данную задачу на js. и если можно подскажите пожалуйста с какой стороны к этому можно подойти? что можно почитать на эту тематику? спасибо большое !

Добавлено через 57 минут
извиняюсь, "есть одна форма, в ней два input chekbox "....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2017, 15:15
Ответы с готовыми решениями:

Обработка массивов чекбоксов с последующим дисейблом лишнего...
Подскажите, есть массив из разных по размеру блоков чекбоксов, притом у каждой группы есть заглавный чекбокс: <input...

Обработка 3-х состояний для чекбоксов
Приветствую, подскажите, как мне сделать 3 состояния для чекбокса (checked, uncheked, hover). У меня есть скрипт, но в нем только первые 2,...

Обработка чекбоксов
Всем привет) Есть вопрос, как как их проверять и обрабатывать одновременно? Нужно ли создавать хидден поле? если да то как для...

5
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
09.03.2017, 15:34
Лучший ответ Сообщение было отмечено antlantis как решение

Решение

antlantis, так?
PHP/HTML
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
<form id="form">
<input type="checkbox" name="a">Фрукты<br />
<input type="checkbox" name="b">Овощи
</form><br />
<form id="form1">
<input type="checkbox" name="a">Яблоко<br />
<input type="checkbox" name="a">Груша<br />
<input type="checkbox" name="a">Банан<br />
<input type="checkbox" name="b">Картофель<br />
<input type="checkbox" name="b">Огурец<br />
<input type="checkbox" name="b">Помидор
</form>
<script>
var _form = form.querySelectorAll('input');
var _form1 = form1.querySelectorAll('input');
 
for(var i=0; i<_form.length; i++){
  _form[i].addEventListener('change', function(e){
    for(var j=0; j<_form1.length; j++){
      if(e.target.getAttribute('name') == _form1[j].getAttribute('name')){
        _form1[j].checked = (!_form1[j].checked) ? true : false;
      }
    }
  })
}
</script>
Добавлено через 13 минут
Цитата Сообщение от antlantis Посмотреть сообщение
извиняюсь, "есть одна форма, в ней два input chekbox "....
PHP/HTML
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
<form id="form">
<p id="p">
<input type="checkbox" name="a_all">Фрукты<br />
<input type="checkbox" name="b_all">Овощи
</p>
<input type="checkbox" name="a">Яблоко<br />
<input type="checkbox" name="a">Груша<br />
<input type="checkbox" name="a">Банан<br />
<input type="checkbox" name="b">Картофель<br />
<input type="checkbox" name="b">Огурец<br />
<input type="checkbox" name="b">Помидор
</form>
<script>
var _p = p.querySelectorAll('input');
var _form = form.querySelectorAll('input');
 
for(var i=0; i<_p.length; i++){
  _p[i].addEventListener('change', function(e){
    for(var j=0; j<_form.length; j++){
      if(e.target.getAttribute('name').charAt(0) == _form[j].getAttribute('name')){
        _form[j].checked = (!_form[j].checked) ? true : false;
      }
    }
  })
}
</script>
1
4 / 4 / 0
Регистрация: 07.08.2015
Сообщений: 102
09.03.2017, 16:37  [ТС]
Пифагор, спасибо Вам за помощь!
По факту у меня чуть сложнее задачка
есть два selecta с выпадающими чекбоксами
в первом селекте - выпадают чекбоксы vid
во втором селекте выпадают чекбоксы brend (в зависимости от выбранных чекбоксов vid в первом селекте)

и соответственно 2 запроса к БД

PHP/HTML
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
<form method="GET" action="search_filter.php">
<div>
<span>Vids</span>
<div overflow:auto>
<?
$result = mysql_query("SELECT * FROM vids_table",$db);
If (mysql_num_rows($result) > 0)
{
 $row = mysql_fetch_array($result);
 do
 {
echo '
<div><input type="checkbox" name="vid[]" value="'.$row["id"].'" id="checkvid'.$row["id"].'" /><label for="checkvid'.$row["id"].'">'.$row["vid"].'</label></div>
'; 
}
while ($row = mysql_fetch_array($result));  
} 
?>
</div>
</div>
 
 
<div>
<span>Brends</span>
<div overflow:auto>
<?
if(!empty($_GET['vid']))
{
        $vids = array();
        foreach($_GET['vid'] as $vid)
        $vids[] = "'".mysql_real_escape_string($vid)."'";
 
 
        $result1 = mysql_query("SELECT * FROM brands_table WHERE 'vid' IN (".implode(", ", $vids).")",$db);                                           
        If (mysql_num_rows($result1) > 0)
        {
            $row1 = mysql_fetch_array($result1);
            do
            {
                echo '
                <div><input type="checkbox" name="brand[]" value="'.$row1["id"].'" id="checkbrend'.$row1["id"].'" /><label 
                for="checkbrend'.$row1["id"].'">'.$row1["brand"].'</label></div>
                '; 
            }
            while ($row1 = mysql_fetch_array($result1));    
        } 
}
else {echo 'не выбраны виды';}
?>
</div>
</div>
<center><input type="submit" name="submit" id="submit_s" value="Найти" /></center> 
</form>
Добавлено через 8 минут
Пифагор, если Вас не затруднит, подскажите пожалуйста, какой запрос сделать в базу данных к таблице брендов в зависимости от выбранных типов вещей? И как в этом случае его связать с js ?

Или хотя бы укажите направление куда копать) Спасибо огромное!

Добавлено через 9 минут
пока выполняется
...
PHP
1
2
}
else {echo 'не выбраны виды';}



и получаю как раз сообщение - "не выбраны виды"

то есть при отметке чекбоксов vid - они не попадают в массив GET
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
09.03.2017, 16:45
Лучший ответ Сообщение было отмечено antlantis как решение

Решение

Если я правильно понял, все действия Вы хотите осуществлять без перезагрузки документа. Тогда Вам нужен AJAX.
1
4 / 4 / 0
Регистрация: 07.08.2015
Сообщений: 102
09.03.2017, 21:18  [ТС]
Пифагор, спасибо Вам огромное за помощь!!!
0
4 / 4 / 0
Регистрация: 07.08.2015
Сообщений: 102
11.03.2017, 22:38  [ТС]
Пифагор, подскажите пожалуйста такой момент (еще один появился)
По выше обсуждаемой теме.

Сам вопрос - я хотел воспользоваться Вашим советом сделать через ajax (с которым пока не знаком)
И подумал, что возможно нужно сначала сделать все на js с использованием нажатия кнопок


Я получил значения отмеченных чекбоксов с помощью js, но теперь мне нужно передать их как параметры отбора при запросе к БД - SELECT * FROM table WHERE .... Есть массив значений чекбоксов, (... , ... , ... ,)но он в javascript, а мне нужен в PHP

То есть нужно передать переменную-массив значений чекбоксов из js в php

Почитал на данном сайте некоторые темы по данному вопросу, и нашел информацию, что сделать это не получится, так как php обработчик уже отработал на сервере, и отправил браузеру уже только html css и js

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

стоит ли мне все таки сначала сделать это все на js с JQUERY и затем попробовать реализовать на ajax или возможно на ajax сделать все это будет проще и сразу лучше взяться за ajax/ Простите, если много и несовсем понятно написал.Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2017, 22:38
Помогаю со студенческими работами здесь

Обработка нескольких чекбоксов
Привет всем. Такая проблема: Есть таблица в Access с полями business_name, address, city, state, zip. Делается запрос по...

Обработка чекбоксов с записью в БД
Уважаемые программисты, прошу помощи! Тема думаю достаточно простая для вас опытных... я только учусь, перелапатила уже кучу информацию, но...

Обработка чекбоксов в php
Имеется форма. Количество чекбоксов неизвестно,так форма строится динамически. Например: &lt;form method='post'&gt; &lt;input...

5 чекбоксов из 10
Добрый день! У меня есть 10 чекбоксов, как сделать так чтобы можно было выбрать только 5 штук и если будет не равно 5 то будет выводиться...

Проверка чекбоксов
Добрый день, коллеги. На странице один и тот же элемент включается (делается видимым) разными чекбоксами. Как сделать проверку, если один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru