Как при клике на радиокнопку сразу отправлять форму?

maks_m
На сайте с 02.07.2013
Offline
101
1109

Нужно для фильтра записей.

Пока что всё реализовано с помощью ссылок с GET-параметрами и последующей их обработкой php.

Есть три блока фильтра, php смотрит на GET текущей страницы и, исходя из этого, генерит ссылки для кнопок фильтров на новой странице.

т.е. если фильтра нет, то генерируется ссылка для кнопки index.php?filter_1=xxx,

если другие фильтры уже используются и адрес выглядит так: index.php?filter_2=xxx — генерируется ссылка со значком & — index.php?filter_2=xxx&filter_1=xxx.

Выбирать радиокнопки, а потом отправлять форму — не вариант. Хочу, чтобы при нажатии разу всё срабатывается.

Реализацию можно посмотреть на видео:

https://www.youtube.com/watch?v=dbnX2FeCYuQ

P.S. начинающий

Gerga
На сайте с 02.08.2015
Offline
94
#1

maks_m, Ajax`ом отправляете форму? Повесьте на радиокнопку JavaScript событие .change()

maks_m
На сайте с 02.07.2013
Offline
101
#2

Gerga, дело в том, что никакого Ajax`а я не использую, вся фильтрация происходит после перезагрузки страницы)

Gerga
На сайте с 02.08.2015
Offline
94
#3

maks_m, ясно. В общем, что-то типа такого должно быть


<input type="radio" name="radio_param" value="val_param1" onchange="this.form.submit()" />

или с функцией addEventListener() повесить всем радиокнопкам submit() при событии change.

maks_m
На сайте с 02.07.2013
Offline
101
#4

Gerga, странно, передаёт ?filter1=on, а не то, что указано в value.


<form>
<input type="radio" name="filter1" id="filter1" value"test" onchange="this.form.submit()">
<label for="filter1">test</label>
</form>
totamon
На сайте с 12.05.2007
Offline
437
#5
maks_m:
странно, передаёт ?filter1=on, а не то, что указано в value.

именно так и работают радио кнопки))

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
maks_m
На сайте с 02.07.2013
Offline
101
#6

totamon, нет, они value-значение передают, просто знак "=" пропустил :)


value"test"

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий