2012-03-28 58 views
-1

如果是愚蠢的問題,我很抱歉。我想檢查一個或多個複選框是否爲空,然後可以處理表單並打印電子郵件的興趣文本。如何檢查複選框是否爲空

HTML/PHP

<p><label for="commentsText">I am interested in:</label><br/> 
<input type="checkbox" name="interest[]" id="interest" value="1" class="required requiredField email" /> 
    Exhibiting. Please send me more information<br/> 
<input type="checkbox" name="interest[]" id="interest" value="2" class="required requiredField email" /> 
    Visiting. Please add me to your mailing list<br/> 
<input type="checkbox" name="interest[]" id="interest" value="3" class="required requiredField email" /> 
    Speaking. Please send me more information<br/> 
<input type="checkbox" name="interest[]" id="interest" value="4" class="required requiredField email" /> 
    Attending. Please send me more information<br/> 

<?php if($interestError != '') { ?> 
<span class="error"><?php echo $interestError; ?></span> 
<?php } ?> 
</p> 

PHP

$interest='';  
if(empty($_POST[$interest])) 
{ 
    $interestError ='Please select the interests'; 
    $hasError = true; 
} 
else{ 
    $numberofInterest = count($interest); 
    for ($i=0; $i < $numberofInterest; $i++) 
    { 
     $numofInterest = $interest[i]; 
     echo $numofInterest . " "; 
    } 
} 

編輯#2

謝謝大家的幫助。我用print_r看到所有四個都打印出來。現在的問題是:如果沒有錯誤,發送郵件。當我檢查所有複選框時,它不顯示全部。只顯示'4'。有沒有辦法顯示所有包括文本?

if(!isset($hasError)) { 

     $interest = $numofInterest ; 

    $subject = 'I Have A Question to Ask from '.$name; 
      $thanksubject = 'Thank you for the Form Submission'; 
      $body = "Name: $name \n\nEmail: $email \n\nInterest: $interest\n\nComments: $comments"; 

* 編輯#3 *

OK我已經解決了上面最後一個。設法發送一切的電子郵件。

+0

你可以在發佈表單之前在javascript中檢查它,就像http://stackoverflow.com/questions/2684434/jquery-check-if-atleast-one-checkbox-is-checked – 2012-03-28 06:31:03

回答

0

當表單提交的PHP腳本將分別獲得過的框的數組中的$_GET$_POST變量(或者你可以只使用$_REQUEST

即當第一和第三複選框被選中,一個print_r($_POST['interest']);將輸出:

Array 
(
    [0] => 1 
    [1] => 3 
) 

我覺得你的主要錯誤,是你的方式指數$_POST -variable - 您使用的變量$interest,你應該使用字符串'interest' ,就像上面一樣。

0

讓我們做一個print_r($ _ POST);並發現發生了什麼。您將瞭解數據如何傳遞......以及將來如何解決類似問題。

相關問題