Php表单复选框帮助(再次)

时间:2010-11-24 03:21:44

标签: php forms

抱歉,我现在有另一个问题。我正在使用一种新的PHP表单方法,而不是以前使用的方法。

我有这样的事情:

<?php 
$ToEmail = 'bryan@email.com'; 
$subject = 'Contact Form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$message = "Name: ".$_POST["name"]."<br>"; 
$message .= "Subject: ".$_POST["subject"]."<br>"; 
$message .= "Email: ".$_POST["email"]."<br>"; 
$message .= "Message: ".nl2br($_POST["message"])."<br>"; 
mail($ToEmail, $subject, $message, $mailheader) or die ("Failure"); 

但我需要包含复选框。我最初有: $ check。= implode(',',$ _POST ['check']);来自这里的其他人,但现在不起作用,不知道还有什么可以做的。任何帮助将不胜感激!

页面位于此处:http://makeupbysherry.com/contact.php

2 个答案:

答案 0 :(得分:1)

复选框只有在检查过时才会发出true或false值。我建议您使用唯一名称分解每个复选框,然后检查其帖子值。

input name="chk-makeover" value="Makeover" type="checkbox" class="contact_checkbox"

要在邮件中包含上面的示例复选框,您可以尝试以下操作:

$message .= "Services: ";
if (isset($_POST['chk-makeover'])) $message .= "Makeover";

答案 1 :(得分:0)

您想将所选框附加到邮件中吗?

您的$check .= implode(', ', $_POST['check'])应该可以正常工作,您需要做的就是将其添加到消息中。

所以:

<?php 
$ToEmail = 'bryan@email.com'; 
$subject = 'Contact Form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$message = "Name: ".$_POST["name"]."<br>"; 
$message .= "Subject: ".$_POST["subject"]."<br>"; 
$message .= "Email: ".$_POST["email"]."<br>"; 
$message .= "Message: ".nl2br($_POST["message"])."<br>";

if(isset($_POST['check'])){
    $message .= implode(', ', $_POST['check']);
}

mail($ToEmail, $subject, $message, $mailheader) or die ("Failure"); 

编辑:忘记检查以查看是否设置了通过POST发送的检查数组。见修订后的^^

Edit2:实际上,如果$ _POST ['check']不存在就会出现问题,因为我们仍然会从$ check附加下一行没有任何内容,所以最好是从一开始就将它附加到$ message。最后修订大声笑。祝你好运。