2015-01-21 1 views
1

게시물과 함께 보내야합니다. false 체크 박스 마녀의 값은 기본적으로 선택되어 있지 않습니다.양식에 거짓 값이있는 체크 박스

<label><input type="checkbox" id="rez" name="rezerwowanie" value="false" />Rezerwowanie</label>

을 그리고 이후 내가 확인란이 선택되지 않았거나 있는지 확인하는 그 코드를 사용하여 제출 : 내 체크 박스는 다음과 같이 정의된다

$Reservation = $_POST['rezerwowanie']; 
    if ($Reservation == false) { 
     $Reservation = 0; 
    } else 
    { 
     $Reservation = 1; 
    } 

그것은 내가 확인란을 선택하면 작동하지만 함께 그것이 작동하지 않는 것을 확인했다. 여기서 뭐가 문제 야?

+1

$ 예약 = "거짓"== 거짓이 아니며,'if ($ Reservation == 'false') '를 시도해야합니다. –

답변

3

확인란은 활성화되었을 때만 서버에 값을 보냅니다. 그래서 체크하지 않으면 $ _POST [ 'rezerwowanie']는 거기에 없을 것입니다. 귀하의 코드는 이것을 설명 할 필요가있을 것입니다. 배열 요소가 설정되었는지 확인하여 동일한 결과를 얻을 수 있습니다.

$Reservation = isset($_POST['rezerwowanie']); 
if ($Reservation == false) { 
    $Reservation = 0; 
} else 
{ 
    $Reservation = 1; 
} 

간단한 방법이 작업을 수행합니다 : 사용자가 확인란을 선택하지 않은 경우

$Reservation = isset($_POST['rezerwowanie']) ? 0 : 1; 

$ 예약은 0과 동일합니다. 나는 당신의 필요에 따라 논리를 뒤로 할 수도 있지만, 일반적인 생각은 옳다. 아니요 else 문이 필요하지 않습니다.

+1

나는 당신이 삼항을 뒤로 가지고 있다고 믿습니다. 그것이 설정되면 HTML에 정의 된 값 때문에 false가됩니다. '그럴 수 없어? 0 : 1' –

+0

그래, 나는 똑같은 생각을하고 있었다. – Robbert

+0

더블 부정 논리 물건은 코드를 매우 이상하게 만든다> _> –