Непонятка с чекбоксом.

fixxxer

К.О.
Партнер клуба
так номер страницы нам в любом случае надо передавать, чтобы редиректнуть туда где были ;)

можно, конечно, передавать и все хидденом, но вот такой способ
<input type="hidden" name="checked[0]" value="">
<input type="checkbox" name="checked[0]" value="1" '.$checked_m.'>
вызывает большие сомнения в надежности. я вот совсем не уверен, в каком порядке произвольно взятый браузер такое передаст, и передаст ли вообще.
 

Армян

Новичок
капец, чем вам вариант с радио батонами не подходит ? для того они и сделаны.

пс. помоему зубы через жопу вырываете =)
 

MiRacLe

просто Чудо
PHP:
если (POST) {
   если ($оригинальный_список = список_сохранённый_на_сервере()) {
      $новый_список = пустой();
      по_списку($оригинальный_cписок => $элемент) {
         $новый_список[$элемент] = (есть_ли_в_POST?($элемент));
      }
      если ($оригинальный_список != $новый_список) {
       сохранить_список($новый_список);
     }
     очистить_сохранённый_ранее_список();
   }
    перенаправить_после_POST();
}
$список = получить_список();
сохранить_на_сервере($список);
отобразить_список($список);
Избавляемся от кучи побочных эффектов, имеем полный контроль над данными, не выдумываем идиотские способы почёсывания левой рукой правого уха.

Never, ever, trust your users!
 

Фанат

oncle terrible
Команда форума
fixxxer, так можно один хидден на все сделать

Армян, положа руку на сердце, чекбокс в сто раз более наглядный, чем радио. в радиокнопках глаза начинают разъезжаться, если их больше трех. а чекбокс нормально видно - отмечен пункт или нет

MiRacLe, сессии, имхо, слишком тяжелая артиллерия для этого случая
 

Армян

Новичок
*****
Есть еще вариант с селектом с двумя опшонами "On", "Off"
Вполне наглядно и без извращений

-~{}~ 03.10.08 21:35:

если их больше трех
В данной задаче по два радио на каждый пункт. Или ты имел введу общее кол-во ?
 

MiRacLe

просто Чудо
у checkbox 2 состояния - да/нет
у radio - да/нет/не выбран вообще
 

Армян

Новичок
у radio - да/нет/не выбран вообще
Имеется ввиду один радио баттон или группа ?
Если один то - "нет" и "невыбран вообще" одно и тоже
А если группа,то все верно - чекед
 

Армян

Новичок
у двух радио батонов тоже - либо 1 либо 2ой выбран! Или я чтото упускаю? :)
 

Viktor_Rez

Новичок
Мои пять копеек:

<form action='' method='post'>
<input onClick="set_check(this)" type="checkbox" value="" /> 1 <span>Первый чекбокс</span><br />
<input type="hidden" name="checked[1]" value="false" />

<input onClick="set_check(this)" type="checkbox" value="" /> 2<br />
<input type="hidden" name="checked[2]" value="false" />

<input onClick="set_check(this)" type="checkbox" value="" /> 3<br />
<input type="hidden" name="checked[3]" value="false" />

<input type='submit' value='Ok' />
</form>

<script>
PHP:
function set_check(obj)
{
        check = obj.checked;
        obj = obj.nextSibling;
        while(obj.nodeName != 'INPUT')
        {
                obj = obj.nextSibling;
        }
        obj.value = check;
}
</script>
PHP:
<?
print_r($_POST); //Array ( [checked] => Array ( [1] => true [2] => false [3] => true ) ) 
?>
Генерировать на сервере
PHP:
$tr_fl = ($checked_m == "checked") ? "true" : "false"; 

<input onClick='set_check(this)' type='checkbox' value='' ".$checked_m."  /> Текст<br />
<input type='hidden' name='checked[".$row->post_id."]' value='".$tr_fl."' />
 
Сверху