Перейти к публикации

Привязка к checkbox данных других input


Рекомендованные сообщения

Приветствую, друзья.

Столкнулся с нетривиальной (для меня) проблемой...

Есть страница, на ней таблица, которая заполняется по следующему принципу:

#документа

<form>
  <таблица>
    | checkbox | textarea | textarea | textarea |
    | checkbox | textarea | textarea | textarea |
    | checkbox | textarea | textarea | textarea |
  </таблица>
  <submit-пимпа>
</form>

Заполнение строками - пока foreach не треснет.
Textarea работают как доводы для пользователя, чтобы он решил нажать checkbox.
Отмеченные checkbox'ы передают свои value при сабмите, создается в отдельной таблице базы строка с привязкой пользователя к номеру документа и со списком ID отмеченных чекбоксов. Обработчик с радостью ждет содержимое чекбоксов в конструкции

foreach $_POST['chkbx_id']
{ blablabla}

Чепчики в небо, ура.

 

И вот тут подкрался Бэтмен...
К номеру документа и пользователю должны быть привязаны и данные из textarea тех строк, что отмечены были чекбоксами. Они, конечно, берутся из базы, но ведь шаловливый пользователь может (и имеет на это право) немного изменить информацию в любом из textarea и затем, если он захочет вернуться к документу, не видеть стандартные данные из базы, а свои, редактированные.
То бишь создаю еще одну таблицу, к примеру doc_data. Каждая строка в которой содержит пользователя, номер созданного документа, ID чекбокса конкретной строки и содержимое textarea's этой строки.

Сам Бэтмен: как привязать textarea из строки к чекбоксу этой строки?
Приходят в голову игры с формами, но если foreach родил сто строк, будет сто форм, отправляемых одним submit... Мама, роди меня обратно.
И какие тогда идентификаторы должны быть у всех 4х input одной строки/формы? Переменные типа '.$x++.' тут будут смотреться странно, или я неправ?
Если я в обработчике приму чекбокс и успешно проверю его значение, мне нужно будет как-то идентифицировать информацию, к нему прилагающуюся.

Внимание вопрос! /гонг/
Какие могут быть методы решения привязки информации нескольких input к значению checkbox?



 

Ссылка на сообщение
Поделиться на других сайтах

Решил так:
 

Форма:

$a=1;
$b=1;
$c=1;
$d=1;

| checkbox['.$a++.'][] | textarea1['.$b++.'][] | textarea2['.$c++.'][] | textarea3['.$d++.'][] |
| checkbox['.$a++.'][] | textarea1['.$b++.'][] | textarea2['.$c++.'][] | textarea3['.$d++.'][] |
| checkbox['.$a++.'][] | textarea1['.$b++.'][] | textarea2['.$c++.'][] | textarea3['.$d++.'][] |

Принимаю:

$a = $_POST['checkbox'];
$b = $_POST['textarea1'];
$c = $_POST['textarea2'];
$d = $_POST['textarea3'];

for($i=0; $i < $a; $i++)
                {  
                  foreach($checkbox[$i] as $checkbox)
                  {
                    foreach($textarea1[$i] as $textarea1)
                    {
                      foreach($textarea2[$i] as $textarea2)
                      {
                        foreach($textarea3[$i] as $textarea3)
                        {
                            echo checkbox.textarea1.textarea2.textarea3;
                        }
                      }
                    }
                  }
                }

Согласен, Дед Мороз повесится, зато работает...
 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...