Программирование => PHP => Тема начата: Coder.ua от 10 Августа 2005, 17:40:50
Название: Проблемка с чекбоксами
Отправлено: Coder.ua от 10 Августа 2005, 17:40:50
Всем привет! Есть небольшой трал с чекбоксами!!! Описываю ситуацию. Есть база и таблица tbl_texts с названиями текстов. В ней есть такие поля: t_id (думаю, понятно), t_name (имя текста) и t_enable (флаг который показывает, отображать текст на странице или нет).
Далее на странице администрирования, то есть управления текстами, я получаю список текстов которые содержатся в базе. И рядом с названием текста ставлю чекбокс (переменная - $text_id[]). Если свойство t_enable ==’Y\', то делаю его отмеченным (это показывает, что текст доступен для просмотра.), в противном случаю, просто неотмеченный чекбокс.
Далее мне необходимо, допустим, некоторые тексты, которые были видимыми сделать недоступными для просмотра, а невидимые - наоборот.
Поскольку доступ к чекбоксу можно получить через массив, я использую такой метод. Последовательно перебираю массив, и в зависимости от значения выполняю те или иные действия. Но тут и возникает вся проблема. В элементе массива содержится не состояние флажка, а id-текста, чтобы потом знать с каким текстом, выполнять операцию.
А теперь собственно вопрос. Как узнать отмечен флажек или нет? На сколько я понимаю, то если он отмечен, то можно просто проверить элемент массива if ($text_id[$i]) {do something….;} А если не отмечен, то так if (!$text_id[$i]) {do else….;} Так? Но у меня что-то не выходит!
Я просто не могу понять, как же проверить отмечена галочка или нет! Поскольку value визде установлено, и оно равняется id-текста. Как можно еще?
Заранее благодарен! С уважением, Coder.ua
Название: Проблемка с чекбоксами
Отправлено: CGVictor от 10 Августа 2005, 18:24:55
Coder.ua Гм... проверять существование элемента?
Я всегда присваиваю переданным переменным случайный ключ в массиве. Тогда ясности больше. (В форме - t_id[rnd], t_name[rnd] и t_enable[rnd], "rnd" для строки одинаков)
А в вашей задаче я чего-то не разобрался...:(
Название: Проблемка с чекбоксами
Отправлено: y4an от 10 Августа 2005, 18:50:44
вроде от формы передаются только отмеченные чекбоксы, т.е. если чекбокс не отмечен, то он и не передается.
Coder.ua т.е. в массив $text_id[] попадают только отмеченные чексбоксы
Название: Проблемка с чекбоксами
Отправлено: Coder.ua от 10 Августа 2005, 19:13:25
Да! Правильно! Я не могу получить те чекбоксы, которые не отмеченны! Какие есть идеи?
Название: Проблемка с чекбоксами
Отправлено: y4an от 10 Августа 2005, 20:54:21
если заранее известно количество чекбоксов то можно делать for ($i = 0; $i < count ($text_id); $i++) не по count ($text_id), а по количеству всех чекбоксов
Название: Проблемка с чекбоксами
Отправлено: Coder.ua от 11 Августа 2005, 12:46:33
Так я так и делаю! for ($i = 0; $i < count ($text_id); $i++)
Но я так понял, что он не берет в запрос неотмеченные флажки!
Название: Проблемка с чекбоксами
Отправлено: Демет от 11 Августа 2005, 13:49:28
как вариант
по идее если чекбокс не отмечен придет хидден = 0 и можно узнать какие не отмечены.
Название: Проблемка с чекбоксами
Отправлено: Coder.ua от 11 Августа 2005, 15:44:04
Спасибо Демет, буду пробовать!!!
Название: Проблемка с чекбоксами
Отправлено: CGVictor от 12 Августа 2005, 16:10:17
Coder.ua Ребят, а зачем вообще вот так делать?
Кто мешает посылать form[id][id], form[id][name], form[id][enable] ??
Проблема решается сама собой добавлением isset в условие проверки $form[id]["enable"], а сам переданный массив намного удобнее построен.