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

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

09.03.2017, 15:15. Показов 6571. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru