СообЧа > База Знаний > Интернет > Веб-строительство > PHP

Вопрос

На форме есть набор checkbox-ов., формируется автоматически. Количество заранее неизвестно. Имя общее, например kod. Value разные, например 52, 63, 75 и т.д., определяются при создании формы. Надо выделить несколько!!! и передать, например методом POST для обработки. В результате получаю только одно значение, а надо бы все. Самая большая проблема в том, что заранее не известно, ни сколько checkbox-ов будет на форме, ни их значения. Возможен вариант что в форме будут меняться и/или имя checkbox-а.

Ответ

Используй в имени тега INPUT массивы, например следующим образом:

<input type="radio" name=form[kod52]>какой-то текст
<input type="radio" name=form[kod52]>какой-то текст
<input type="radio" name=form[kod63]>какой-то текст
<input type="radio" name=form[kod75]>какой-то текст
<input type="radio" name=form[kod88]>какой-то текст


Атрибут name можешь генерировать скриптом,
Далее для разбора введенной информации можешь использовать следующую конструкцию:

<?php
while(list($key,$value)=each($form)){
if ($key = "kod63") {
выполнить что-то;
}
и т.д.
}
//скипт не тестировал, но после обработки напильником должно работать!
?>


******

Правильное решение:
<INPUT TYPE="CHECKBOX" NAME="name[]" VALUE="1">
<INPUT TYPE="CHECKBOX" NAME="name[]" VALUE="5">
<INPUT TYPE="CHECKBOX" NAME="name[]" VALUE="20">…
Иначе говоря, к имени переменной надо добавить пустые квадратные скобки. При этом все значения складываются в массив, по которому можно уже по человечески пробегать.

nospam

Вся примочка с чекбоксами в том, что если он «чекнутый», то передается в POST или GET как любой input, но если он НЕ «ЧЕКНУТЫЙ», то НЕ ПЕРЕДАЕТСЯ ни имя ни значение.
Скажем я сабмитаю форму, на которой <input type=text name=ttt..
и
<input type=checkbox name=ccc..
Если оба заполнены, то в POST уйдет, скажем,
ttt="qwewqewqe" и ccc="YesForSomething",
а если оба пустые — то только
ttt=""
Эта особенность описана в хелпе по хтмл

Parfilko2



Copyright © 2000-2004 Сообщество Чайников
Контактная информация