0

非常感谢对php新手的一些帮助!

HTML 表单具有以下复选框列表:

    <input type="checkbox" name="servicetype[]" value="Option A"> Option A<br>
    <input type="checkbox" name="servicetype[]" value="Option B"> Option B<br>
    <input type="checkbox" name="servicetype[]" value="Option C"> Option C<br>
    <input type="checkbox" name="servicetype[]" value="Option D"> Option D<br>
    <input type="checkbox" name="servicetype[]" value="Option E"> Option E<br>

下面的 php 代码虽然不起作用。我希望在电子邮件中发送表格上勾选的选项。所有其他非复选框日期都正常。这是php:

$mail = new Mail();
$mail->to = "my@emailadddress.com";            
$mail->from  =   $_REQUEST["emailaddress"];
$mail->subject = "Form Results";
$mail->body.= "Name: ".$_REQUEST["title"]." ".$_REQUEST["firstname"]." ".$_REQUEST["surname"]. "\n";
$mail->body.= "Email Address: ".$_REQUEST["emailaddress"]. "\n";            
$mail->body.= "Phone Number: ".$_REQUEST["telephonenumber"]. "\n";
$mail->body.= "Address:  ".$_REQUEST["addressline1"]. "\n";    
$mail->body.= $_REQUEST["addressline2"]. "\n";                
$mail->body.= "Town/City:  ".$_REQUEST["towncity"]. "\n";
$mail->body.= "County/State:  ".$_REQUEST["countystate"]. "\n";            
$mail->body.= "Post Code: ".$_REQUEST["postcode"]."\n";
$mail->body.= "Country: ".$_REQUEST["country"]."\n";            

$servicetype = $_POST['servicetype'];
$body .= "servicetype: \r\n".

foreach ($servicetype as $selected) {
$body .= " > ".$selected."\r\n";      
}


$mail->send();
$success=1;

php中的servicetype位是我没有成功复制的部分。有人可以帮忙吗?

4

2 回答 2

1
  • 您将服务类型相关的文本存储在$body而不是 中$mail->body,即它不会包含在您的邮件中。
  • .您还用 a而不是 a结束了一行;
  • 你突然开始使用$_POST而不是$_REQUEST. 这应该无关紧要(假设您post在表单中使用该方法),但是突然在两者之间切换是“奇怪的”并且容易出错。
  • 你需要检查一个 cehckbox 是否真的被选中,否则$servicetype将被取消设置并且你得到错误。用于isset()此检查。

因此,将代码的最后一部分更改为:

$servicetype = $_POST['servicetype'];
if(isset($servicetype)) {
    $mail->body .= "servicetype: \r\n";

    foreach ($servicetype as $selected) {
        $mail->body .= " > ".$selected."\r\n";      
    }
}
于 2013-01-11T12:30:12.390 回答
1

你可以这样做-

$servicetype = implode(",", $_POST['servicetype']);
$mail->body .= $servicetype."\r\n";
于 2013-01-11T12:38:31.883 回答