2014-04-17 2 views
0

저는 formmail에서 일해 왔고 두 개의 체크 박스를 작동 시키려고합니다. 나는 그들이 정확한 정보를 되풀이하도록 할 수는 있지만 최소한 하나의 체크 박스를 선택하지 않았을 때 사용자에게 알려주 길 바란다.PHP 폼 적어도 체크 박스를 선택하십시오

HTML

<td> 
    <input type="checkbox" name="date1" value="Yes">July 7-11 
</td> 
<td> 
    <input type="checkbox" name="date2" value="Yes">July 14-18 
<td> 

PHP 그것은 이메일을 보내 전에 나를 모두 확인란을 선택합니다

$date1 = $_POST['date1']; // required 
$date2 = $_POST['date2']; // required 

    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$date1)) { 
    $error_message .= 'You did not choose a date.<br />'; 
    } 

    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$date2)) { 
    $error_message .= 'You did not choose a date.<br />'; 
    } 

$email_message .= "July 07-11: ".clean_string($date1)."\n"; 
$email_message .= "July 14-18: ".clean_string($date2)."\n"; 

: 이것은 내 코드입니다. 입력 값을 두 가지 값으로 설정하고 적어도 하나는 강제로 시도했지만 아무 것도 작동하지 않는 것 같습니다.

+1

예가 될 것으로 예상되는 preg_match의 요점은 무엇입니까? – Devon

+0

확인란 대신 라디오 상자를 사용하지 않는 이유는 무엇입니까? – artur99

+0

Devon - 방금 다른 코드로 놀아 왔고 "예"를 사용하여 작업 할 무언가를 얻으려고했습니다. artur99 - 원하는 경우 사용자가 두 날짜에 대해 옵션을 가질 수 있기를 원하는 체크 박스를 원하지만 적어도 하나의 날짜를 선택해야합니다. – elfshadowreaper

답변

0

선택하지 않으면 체크 박스가 설정되지 않습니다. 이 옵션을 선택하면 값을 알 수 있습니다. 그래서, 그들이 설정되었는지 확인하기 만하면됩니다.

if(!isset($_POST['date1']) && !isset($_POST['date2'])) 
    $error_message = 'You did not choose a date.<br>'; 

참고 : 양식을 사용하는 것은 아닙니다. 내 자신의 양식에 date1과 date2의 값을 하드 코딩하여 웹 사이트에 제출할 수 있습니다.

+0

그게 효과가있다. 정말 고맙습니다! – elfshadowreaper