使用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"]); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |