HTML. checkbox

wwoland

Суть в том,что чек бокс не отмеченный галочкой вообще не передается как параметр формы.
А очень хотелосьбы.
Средствами ХТМЛя можно это сделать.
То есть если у меня галки нет в чек боксе,то чтоб передавался параметр с этим же именем,но допустим без значения или с нулем,ну вобщем,чтоб передавался.

dedwowan

HTML нет. И даже более того - ненужно.

wwoland

Объясни пожалуйста,почему не нужно.

Andbar

у него два значения - либо отмечен, либо нет.

wwoland

у него одно значение - это свойство value, другое дело, что у него есть еще два состояния,типа активен и не активен.

Andbar

ну, да, если строго говорить, то ты прав. Однако значение логического типа. В целях экономии траффика, логично не посылать невыбранные чекбоксы.

Marusetta

Не нужно потому, что если форма тебе известна и пришел только конкретный набор значений, значит остальное не отмечено, и это можно "додумать" уже на сервере

wwoland

а если форма мне неизвестна?
Я конечно понимаю,что надо сделать так, чтоб она мне была известна и тп. =)

Andr163

исходную форму можно изменять?

wwoland

Исходная форма генерится в зависимости от клиентского выбора, то есть заранее неизвестна.

yolki

я думаю, он намекает на то, что если чуток подредактировать код, генерирующий форму, то.. может быть... оно и передастся

Andr163

можно попробовать для каждого чекбокса генерить хидден, значения которого менять при клике на чекбокс, а при сабмите уже разбирать значения хидденов

wwoland

Спасибо,подумаю над этим!

bansek

+1
в целом все так и делают =)

Ivan826

Я года два назад когда столкнулся с этой проблемой почему-то решил её так: при нажатии на чек бокс менялся его value а при сабмите формы скриптом чекались все чекбоксы. Соответственно все они передавались, а checked/unchecked было понятно из value

dedwowan

Потому что ты можешь смотреть пришла переменная или нет.

Andr163

насколько я понял, он не знает имени переменной

dedwowan

Это как так надо написать программу, чтобы не знать имя переменной? -)

Andr163

форма генерится скриптом

<input type="checkbox" name="data['new_idx_239849545']"/>
<input type="checkbox" name="data['new_idx_239849567']"/>
<input type="checkbox" name="data['new_idx_239849690']"/>

число, предположим, таймстэмп, для уникальности

dedwowan

<input type="checkbox" name="data['new_idx_239849545']"/>
<input type="checkbox" name="data['new_idx_239849567']"/>
<input type="checkbox" name="data['new_idx_239849690']"/>

<input type="checkbox" value="239849545" name="data"/>
<input type="checkbox" value="239849567'" name="data"/>
<input type="checkbox" value="239849690'" name="data"/>

Ну например так. Вот только совершенно непонятно, зачем такое нужно

Andr163

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

dedwowan

Он что, создает таблицу БД под каждую форму?

Andr163

нет, зачем?
есть набор таблиц, есть набор форм, которые генерятся для заполнения этих таблиц. всю работу по сохранению данных в базе делает один скрипт.

dedwowan

Если таблицы не генерятся, то передача ВСЕХ полей не обязательна, т.к. можно посмотреть структуру таблицы

Andr163

а если в форме изменяются не все поля таблицы, а только некоторый набор?
уверен, решения могут быть разными, но такое тоже проходит

wwoland

ты тут вместо меня споришь, хотя все абсолютно правильно - один универсальный скрипт =)

Andbar

используй сессии, зачем лишний траффик гонять?

Andr163

подробнее можно? не догнал

Andbar

подробнее можно? не догнал
если так важен список отправленных чекбоксов, их просто можно хранить среди данных сессии. Соответственно, если страниц с кучей чекбоксов может быть много, желательно ввести скрытое поле - идентификатор страницы с чекбоксами.
Тут, конечно, встаёт вопрос о сроке действия сессии, но это вопрос решаемый.

wwoland

то есть ты предлагаешь при генерации куда то запихивать данные о странице, и при этом условно на странице давать ссылку на эти данные?

dedwowan

а если в форме изменяются не все поля таблицы, а только некоторый набор?
уверен, решения могут быть разными, но такое тоже проходит
И? В чем проблема-то?

Andr163

в таблице есть поле, за которое отвечает чекбокс на форме
если на форме он был, значит в случае, если он не отмечен, скрипт должен поле обнулить
не зная, что было на каждой конкретной форме, я не смогу понять, надо ли обнулять поле

dedwowan

Получается, что у тебя форма редактирует только часть строки и не содержит каких-то полей объекта? И при этом генерится автоматом? Похоже кто-то что-то неправильно написал.
И потом, у тебя какая-то обратная логика. По идее ситуация должна требовать обратного - изменять поле, которое помеченно, а не неизменять только те поля, которые помечены. Уже это навевает на мысль, что где-то там есть ошибка.

Andr163

"генерится автоматом" - это, видимо, "генерится на основе пользовательского выбора"
у нас нет описания того, как генерится форма, поэтому, думаю, дальше спорить бесмыссленно
Оставить комментарий
Имя или ник:
Комментарий: