(PHP)Помогите организовать цикл.

McLighter
Дата: 14.08.2006 15:31:38
Подскажите как сделать следующее.

Есть форма в которой несколько элементов checkbox.
Количество этих элементов может менятся в зависимости от того сколько вариантов есть в базе.
<?php
     //считывание всех значений из базы и их вывод.
     $q7=mysql_query("select paramName from param");
        $schet=0;
        while ($Item=mysql_fetch_row($q7))
        {
                $schet++;
                echo  "$Item[0]<input type='checkbox' name='a$schet' value='1'> | ";
        }
     ?>


После отправки данных формы я получаю несколько переменных $a1, $a2, $a3, $a4, $a5.
Те что были отмечены равны 1. Неотмеченные соответственно ничему не равны.

Для обработки полученных данных мне надо сделать цикл с проходом по всем переменным(их кол-во может менятся.)
Как это сделать?
adv
Дата: 14.08.2006 15:56:32
Robert Tappan Moris
Дата: 15.08.2006 12:33:43
измените вывод чекбоксов:
echo "<input type=\"hidden\" name=\"a$schet\" value=\"0\">";
echo "<label for=\"c$schet\">$Item[0]</label>";
echo "<input id=\"c$schet\" type=\"checkbox\" name=\"a$schet\" value=\"1\"> | ";

Скрытое поле имеющее тоже самое имя что и чекбокс позволит получить 0, если галогка в чекбоксе не стоит. Тут важно что скрытое поле должно быть написано до чекбокса.

А label - для удобства пользователе (чтоб можно было кликом по тексту менять значение чекбокса).
Anjey aka PM
Дата: 15.08.2006 13:08:54
Robert Tappan Moris
измените вывод чекбоксов:
echo "<input type=\"hidden\" name=\"a$schet\" value=\"0\">";
echo "<label for=\"c$schet\">$Item[0]</label>";
echo "<input id=\"c$schet\" type=\"checkbox\" name=\"a$schet\" value=\"1\"> | ";

Скрытое поле имеющее тоже самое имя что и чекбокс позволит получить 0, если галогка в чекбоксе не стоит. Тут важно что скрытое поле должно быть написано до чекбокса.

А label - для удобства пользователе (чтоб можно было кликом по тексту менять значение чекбокса).


и нахрена спрашивается такой садо-мазо????

достаточно просто использовать массив:

<?php
     //считывание всех значений из базы и их вывод.
     $q7=mysql_query("select paramName from param");
        $schet=0;
        while ($Item=mysql_fetch_row($q7))
        {
                $schet++;
                echo  "$Item[0]<input type='checkbox' name='a[]' value='$schet'> | ";
        }
     ?>


и потом в цикле пройтись по его __значениям__ (не ключам)

вот уж проктологи, А еще советуют
McLighter
Дата: 15.08.2006 15:05:11
Решил свою проблему по одному из топиков предложенных adv.
Топик называется "Передача массива значений в параметрах"
То что советует 4m@t!c идеально мне подошло.