Есть 3 (я не знаю, сколько из них было бы изменчивым. 3 только пример) флажки в моей форме, и я хочу обнаружить флажки без галочек с php, когда он будет опубликован. Как я могу это сделать?
Гумбо прав . Однако есть работа, и это следующее:
<form action="" method="post"> <input type="hidden" name="checkbox" value="0"> <input type="checkbox" name="checkbox" value="1"> <input type="submit"> </form>
Другими словами: иметь скрытое поле с тем же именем, что и флажок, и значение, которое представляет собой непроверенное состояние, например 0
. Однако важно, чтобы скрытое поле предшествовало флажку в форме. В противном случае значение скрытого поля переопределит значение флажка при отправке на бэкэнд, если флажок установлен.
Другой способ отслеживать это – иметь список возможных флажков в back-end (и даже заполнить форму в фоновом континге с этим списком, например). Что-то вроде следующего должно дать вам идею:
<?php $checkboxes = array( array( 'label' => 'checkbox 1 label', 'unchecked' => '0', 'checked' => '1' ), array( 'label' => 'checkbox 2 label', 'unchecked' => '0', 'checked' => '1' ), array( 'label' => 'checkbox 3 label', 'unchecked' => '0', 'checked' => '1' ) ); if( strtolower( $_SERVER[ 'REQUEST_METHOD' ] ) == 'post' ) { foreach( $checkboxes as $key => $checkbox ) { if( isset( $_POST[ 'checkbox' ][ $key ] ) && $_POST[ 'checkbox' ][ $key ] == $checkbox[ 'checked' ] ) { echo $checkbox[ 'label' ] . ' is checked, so we use value: ' . $checkbox[ 'checked' ] . '<br>'; } else { echo $checkbox[ 'label' ] . ' is not checked, so we use value: ' . $checkbox[ 'unchecked' ] . '<br>'; } } } ?> <html> <body> <form action="" method="post"> <?php foreach( $checkboxes as $key => $checkbox ): ?> <label><input type="checkbox" name="checkbox[<?php echo $key; ?>]" value="<?php echo $checkbox[ 'checked' ]; ?>"><?php echo $checkbox[ 'label' ]; ?></label><br> <?php endforeach; ?> <input type="submit"> </form> </body> </html>
… установите один или два флажка, затем нажмите кнопку «Отправить» и посмотрите, что произойдет.
Представлены только проверенные флажки. Таким образом, любой флажок, который не отправлен, не установлен.