venetu
Мой дом здесь!
- Регистрация
- 28 Мар 2007
- Сообщения
- 745
- Реакции
- 273
Хиддены нужны, чтоб передались нули.
Просто в реальном проекте строка с чекбоксом обычно имеет такой вид:
т.е. при открытиии формы юзером те чекбоксы, которые "установлены" - ему уже сразу и показываются установленными. Если он какие-то "поснимает", то вместо того чтобы передать в сабмите, что такой-то чекбокс был снят, бровзер не передает ничего. И в результате в базе они так и останутся установленными.
Т.е. выход - или самому заранее следить, какие ты там чекбоксы юзеру отправлял и сколько из них обратно получил, или проходиться по всему списку возможных чекбоксов и смотреть isset($GET...), или не париться и вставить еще по хидден полю - тогда для каждого чекбокса из формочки при сабмите придет или его value, если он был установлен, или 0, если он был снят.
Это я не сам придумал такой способ. Но имхо очень удобно.
Просто в реальном проекте строка с чекбоксом обычно имеет такой вид:
PHP:
<input type=checkbox name=a1 value=1 <?=$a1?'checked':''?>>
т.е. при открытиии формы юзером те чекбоксы, которые "установлены" - ему уже сразу и показываются установленными. Если он какие-то "поснимает", то вместо того чтобы передать в сабмите, что такой-то чекбокс был снят, бровзер не передает ничего. И в результате в базе они так и останутся установленными.
Т.е. выход - или самому заранее следить, какие ты там чекбоксы юзеру отправлял и сколько из них обратно получил, или проходиться по всему списку возможных чекбоксов и смотреть isset($GET...), или не париться и вставить еще по хидден полю - тогда для каждого чекбокса из формочки при сабмите придет или его value, если он был установлен, или 0, если он был снят.
Это я не сам придумал такой способ. Но имхо очень удобно.