加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用PHP通过电子邮件发送表单复选框值

发布时间:2020-12-13 21:44:39 所属栏目:PHP教程 来源:网络整理
导读:我看了几下并发现了几个类似的问题,但似乎无法使解决方案对我有用.如果有人可以指出我错过的那将是伟大的. 基本上,我有一个表单和PHP,检查字段是否已填写,然后验证它们.然后我发邮件给他们.我有一切工作,除了它只发送最后检查的值,而不是所有的.我相信我的问
我看了几下并发现了几个类似的问题,但似乎无法使解决方案对我有用.如果有人可以指出我错过的那将是伟大的.

基本上,我有一个表单和PHP,检查字段是否已填写,然后验证它们.然后我发邮件给他们.我有一切工作,除了它只发送最后检查的值,而不是所有的.我相信我的问题是当我将数组添加到正文以供电子邮件使用时.这是我的部分代码:

if (function_exists('htmlspecialchars_decode')) $message[2] = htmlspecialchars_decode($message[2],ENT_QUOTES);     

$body = "$name[0]: $name[2]rnrn";
$body .= "$email[0]: $email[2]rnrn";
$body .= "$phone[0]: $phone[2]rnrn";
$body .= "$service: $servicen";
$body .= "$message[0]:rn$message[2]rn";

if (!$from) $from_value = $email[2];
else $from_value = $from;

require_once('formfiles2/class.phpmailer.php');

$mail = new PHPMailer();

$mail->SetFrom($from_value);  
$mail->AddReplyTo($email[2]);
$mail->Subject = "$subject";
$mail->Body = $body;
$mail->AddAddress($to);

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
}

我也试过这个:

$body .= "Service" .(is_array($_REQUEST['service']) ? implode("n",$_REQUEST['service']) : $_REQUEST['service']);

这是表格的一部分:

<form method="post" class="cForm" action="#cform"> 

.....

<tr>
<td>
<input type="checkbox" name="service" value="sweeping" /> Sweeping<br />
<input type="checkbox" name="service" value="litter" /> Litter Maintenance<br /> 
<input type="checkbox" name="service" value="snow" /> Snow Removal<br />
<input type="checkbox" name="service" value="wash" /> Power Washing<br /> 
</td>
<td>
<input type="checkbox" name="service" value="striping" /> Parking Lot Re-Striping<br />
<input type="checkbox" name="service" value="concrete" /> Asphalt/Concrete Work<br /> 
<input type="checkbox" name="service" value="lawn" /> Lawn Care<br />
</td>
<tr>

....

</form>

所以,我想我的语法中缺少一些东西,将数组添加到正文中.让我知道!在此先感谢您的帮助!

解决方法

您不能有多个具有相同名称的复选框.这将表现得像选择选项.多个选中的值只会相互覆盖.

您应该将您的条目调整为:

<input type="checkbox" name="service[stripping]" value="striping" /> Parking Lot Re-Striping<br />
<input type="checkbox" name="service[concrete]" value="concrete" /> Asphalt/Concrete Work<br /> 
<input type="checkbox" name="service[lawn]" value="lawn" /> Lawn Care<br />

(不需要是关联的.一个简单的服务[]已经可以做了.只是看起来更好,更明确.)

然后将传入的数组合并到文本列表中:

$service = join(",",$_REQUEST["service"]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读