2012-11-24 2 views

답변

5

Gumbo is right. 이 그러나 주변의 일이며, 그 다음입니다 : 즉

<form action="" method="post"> 
    <input type="hidden" name="checkbox" value="0"> 
    <input type="checkbox" name="checkbox" value="1"> 
    <input type="submit"> 
</form> 

가 : 체크 박스와 같은 이름과 체크되지 않은 상태, 예를 들어 0를 나타내는 값으로 숨겨진 필드가 있습니다. 그러나 숨겨진 필드 앞에는 양식의 확인란이 앞에 있어야합니다. 그렇지 않으면 체크 박스가 체크 된 경우 숨겨진 필드 값이 백엔드에 게시 될 때 체크 박스 값을 무시합니다.

이 문제를 추적하는 또 다른 방법은 백엔드에 가능한 체크 박스 목록을 작성하는 것입니다 (예를 들어 해당 목록으로 백엔드 양식을 채울 수도 있습니다). 다음과 같은 내용을 통해 아이디어를 얻을 수 있습니다.

<?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> 

... 하나 또는 두 개의 체크 박스를 선택하고 제출 버튼을 클릭하면 어떤 일이 발생하는지 볼 수 있습니다.

+0

감사합니다. 음, 감지 할 방법이 없습니까? –

+0

예제가 없거나 백엔드의 확인란을 추적하지 않아도됩니다. 예제는 체크 박스가 선택되어 있지 않으면'$ _POST [ 'checkbox']'에 숨겨진 값인'0'을 출력하고, 그렇지 않으면'1'을 출력합니다. –

+0

답장을 보내 주셔서 감사합니다 –

관련 문제