Консультация № 145361
28.09.2008, 23:13
0.00 руб.
0 3 2
помогите пожалуйста: как сделать таблицу с чекбоксами, чтобы их выбранные значения при отправке формы записывались в файл?
я сделал, но у меня записывается только последнее из выбранных значение. что не так?
значения value у каждого чекбокса разное, ест-но.

Обсуждение

Неизвестный
29.09.2008, 00:09
общий
это ответ
Здравствуйте, Denis2008!
Нужное установить разные значения параметру name у каждого checkbox'а.
Посмотрите в приложении


Приложение:
<form>
<input name="Name1" type="checkbox" value="ON">Пункт 1
<input name="Name2" type="checkbox" value="ON">Пункт 2
<input name="Name3" type="checkbox" value="ON">Пункт 3
<input name="Name4" type="checkbox" value="ON">Пункт 4
</form>
<?php
$f = fopen('file.txt',"w");
foreach ($_POST as $name=>$value) fputs($f,$name.'='.$value."\n");
fclose($f);
?>
Неизвестный
29.09.2008, 07:19
общий
это ответ
Здравствуйте, Denis2008!
Можно сделать задачку и таким образом, что параметру name присваивается одно и тоже значение.

<form ...>
<input type="checkbox" name="name[]">
<input type="checkbox" name="name[]">
<input type="checkbox" name="name[]">
<input type="checkbox" name="name[]">
<input type="checkbox" name="name[]">
</form>

Видите? У атрибута name значение, на первый взгляд, одно и то же. Однако, если мы отправим такую форму и сделаем в скрипте простую операцию print_r($_REQUEST), то переменная распечатается, как двумерный массив $_REQUEST['name'][$i].

Полезно бывает сопровождать checkbox полем hidden, в котором будет содержаться значение поля по умолчанию, в случае, если мы не поставим напротив соответствующего checkbox`а галочку. Для способа, предложенного мной, придется сопроводить вставляемые поля счетчиком. Например, если Вы воспользовались циклом for для создания "multicheckbox`а", то в квадратные скобки следует вставить значение счетчика и результирующий код будет выглядеть так:

<?php
for ( $i = 0 ; $i < @количество чекбоксов; $i ++)
{
?>
<input type="hidden" name="name[ <?= $i ; ?> ]" value="значение поля по умолчанию"><input type="checkbox" name="name[ <?= $i ; ?> ]" value="значение, устанавливаемое при постановке галочки">
<?php
}
?>

Этот вариант лишь как альтернативный. Я им пользуюсь всегда потому, что очень не люблю вставлять код PHP в HTML.

С уважением, Товарищ Бородин
Неизвестный
29.09.2008, 15:05
общий
да, была такая идея- про счётчик к имени чекбокса, но показалась она мне слишком сложной. благо цикл for уже имелся- таблица у меня через него… вопрос решён, спасибо!
Форма ответа