Я бы прокомментировал ответ ConroyP, но для этого требуется 50 репутации, которой у меня нет. У меня достаточно репутации, чтобы опубликовать другой ответ. К сожалению.
Проблема с ответом ConroyP состоит в том, что флажок отображается неизменным, даже если он не включен на страницу. Хотя Electrons_Ahoy не оговаривает так много, лучшим ответом будет тот, в котором неизменяемый флажок будет выглядеть аналогично, если не совпадает с изменяемым флажком, как в случае применения атрибута disabled Решение, в котором рассматриваются две причины, которые Electrons_Ahoy указывает на нежелание использовать атрибут «disabled», не обязательно будет недействительным, поскольку в нем используется атрибут «disabled».
Предположим, две логические переменные: $ selected и $ disabled:
if ($checked && $disabled)
echo '<input type="hidden" name="my_name" value="1" />';
echo '<input type="checkbox" name="my_name" value="1" ',
$checked ? 'checked="checked" ' : '',
$disabled ? 'disabled="disabled" ' : '', '/>';
Флажок отображается как отмеченный, если $ флажок равен true. Флажок отображается как непроверенный, если $ флажок равен false. Пользователь может изменить состояние флажка, если и только если $ disabled имеет значение false. Параметр «my_name» не публикуется, когда флажок снят, пользователем или нет. Параметр «my_name = 1» публикуется, когда флажок установлен, пользователем или нет. Я полагаю, это то, что искал Electrons_Ahoy.