Автор Тема: Проблемка с чекбоксами  (Прочитано 4155 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Coder.ua

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемка с чекбоксами
« : 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….;}
Так?
Но у меня что-то не выходит!

Вот кусочек моего кода:


for ($i 0$i count ($text_id); $i++)
      {
          
$my->in_text_id $text_id[$i];
          if (
$text_id[$i])
          {
              
$my->in_text_enable = \'Y\';
              $err = $my->in_text_enable();
              if($err)
               {
                echo $my->err_to_html ($err);
                exit();
               }
               else {
                   $my->html_error .= " $text_id[$i] ";
               }
          }
          else {
              $my->in_text_enable = \'N\';
              $err = $my->in_text_enable();
              if($err)
               {
                echo $my->err_to_html ($err);
                exit();
               }
               else {
                   $my->html_error .= " $text_id[$i] ";
               }
          }
       }


Я просто не могу понять, как же проверить отмечена галочка или нет! Поскольку value визде установлено, и оно равняется id-текста.
Как можно еще?


Заранее благодарен!
С уважением, Coder.ua

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблемка с чекбоксами
« Ответ #1 : 10 Августа 2005, 18:24:55 »
Coder.ua
Гм... проверять существование элемента?

Я всегда присваиваю переданным переменным случайный ключ в массиве. Тогда ясности больше.
(В форме - t_id[rnd], t_name[rnd] и t_enable[rnd],
"rnd" для строки одинаков)

А в вашей задаче я чего-то не разобрался...:(
LJ: Backslashed life (rss)

Оффлайн y4an

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 51
  • +0/-0
  • 0
    • Просмотр профиля
    • http://berega-next.ru/
Проблемка с чекбоксами
« Ответ #2 : 10 Августа 2005, 18:50:44 »
вроде от формы передаются только отмеченные чекбоксы, т.е. если чекбокс не отмечен, то он и не передается.

Coder.ua
т.е. в массив $text_id[] попадают только отмеченные чексбоксы
открой для себя новые БЕРЕГА

Оффлайн Coder.ua

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемка с чекбоксами
« Ответ #3 : 10 Августа 2005, 19:13:25 »
Да! Правильно! Я не могу получить те чекбоксы, которые не отмеченны! Какие есть идеи?

Оффлайн y4an

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 51
  • +0/-0
  • 0
    • Просмотр профиля
    • http://berega-next.ru/
Проблемка с чекбоксами
« Ответ #4 : 10 Августа 2005, 20:54:21 »
если заранее известно количество чекбоксов то можно делать
for ($i = 0; $i < count ($text_id); $i++)
не по count ($text_id), а по количеству всех чекбоксов
открой для себя новые БЕРЕГА

Оффлайн Coder.ua

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемка с чекбоксами
« Ответ #5 : 11 Августа 2005, 12:46:33 »
Так я так и делаю!
for ($i 0$i count ($text_id); $i++)

Но я так понял, что он не берет в запрос неотмеченные флажки!

Оффлайн Демет

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 29
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемка с чекбоксами
« Ответ #6 : 11 Августа 2005, 13:49:28 »
как вариант



по идее если чекбокс не отмечен придет хидден = 0 и можно узнать какие не отмечены.

Оффлайн Coder.ua

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблемка с чекбоксами
« Ответ #7 : 11 Августа 2005, 15:44:04 »
Спасибо Демет, буду пробовать!!!

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблемка с чекбоксами
« Ответ #8 : 12 Августа 2005, 16:10:17 »
Coder.ua
Ребят, а зачем вообще вот так делать?

Кто мешает посылать
form[id][id], form[id][name], form[id][enable]
??

Проблема решается сама собой добавлением isset в условие проверки $form[id]["enable"], а сам переданный массив намного удобнее построен.
LJ: Backslashed life (rss)

 

Sitemap 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