如何检查复选框是否为空

时间:2012-03-28 06:27:42

标签: php

如果这是一个愚蠢的问题,我道歉。我想检查一个或多个复选框是否为空,然后可以处理表单并打印电子邮件的兴趣文本。

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 *

好的,我已经解决了上面的最后一个问题。设法发送电子邮件与一切。

2 个答案:

答案 0 :(得分:0)

让我们做一个print_r($ _ POST);并发现正在发生的事情。您将了解数据的传递方式以及未来如何解决类似问题。

答案 1 :(得分:0)

提交表单后,PHP脚本将分别收到$_GET$_POST变量中的复选框数组(或者您只能使用$_REQUEST

即。选中第一个和第三个复选框时,将输出print_r($_POST['interest']);

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

我认为你的主要错误是你对$_POST - 变量进行索引的方式 - 你使用变量$interest,你应该使用字符串'interest',如上所述。