php - PHP - 电子邮件响应者中的复选框值显示
问题描述
我首先检查了所有问题。但他们都没有帮助解决我的问题。
我有连接到 HTML 联系表单的 PHP 电子邮件响应程序。我需要在发送给客户的电子邮件回复中显示选定的复选框值。
PHP 代码
<?php
if(isset($_POST) && ($_POST['send'] == 1)){
$documents = array(
'document1' => 'http://www.example.com/document1.doc',
'document2' => 'http://www.example.com/document2.doc',
'document3' => 'http://www.example.com/document3.doc'
'document4' => 'http://www.example.com/document4.doc'
);
$to = 'lubosmasura@gmail.com';
$subject = 'Prihláška na školenie';
$name = $_POST['name'];
$email = $_POST['email'];
$document = implode(", ",$post['document']);
if(isset($_POST['document']) && count($_POST['document']) > 0){
foreach($_POST['document'] as $doc){
if(isset($documents[$doc])){
$document = implode(", ",$post['document']);
$message = "
ŠKOLENIE: $document
";
}
}
}
$headers = 'From: noreply@marcelaskolenia.sk' . "\r\n" .
'Reply-To: noreply@marcelaskolenia.sk' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message, $headers);
}
?>
HTML 代码
<form method="post" action="test.php">
<p class="center">Vyberte školenie</p>
<label class="container riadok"><p for="document" class="dolava">§20 Poučená osoba</p>
<input type="checkbox" name="document[]" value="document1" id="document">
<span class="checkmark"></span>
</label>
<label class="container riadok"><p for="document" class="dolava">Aktualizácia: §21 AŽ §24</p>
<input type="checkbox" name="document[]" value="document2" id="document">
<span class="checkmark"></span>
</label>
<label class="container riadok"><p for="document" class="dolava">§21 Elektrotechnik</p>
<input type="checkbox" name="document[]" value="document3" id="document">
<span class="checkmark"></span>
</label>
<label class="container riadok"><p for="document" class="dolava">§24 Revízny technik</p>
<input type="checkbox" name="document[]" value="document4" id="document">
<span class="checkmark"></span>
</label>
<p class="center">Vyplňte osobné údaje</p>
<input type="text" name="name" id="name" class="form-control" placeholder="Meno">
<input type="text" name="email" id="email" class="form-control" placeholder="Email">
<input type="tel" name="phone" id="phone" class="form-control" placeholder="Telefónne číslo" pattern="[0-9]+" title="Zadajte iba čísla." required="required">
<input type="hidden" name="send" value="1" />
<button type="submit" value="SEND" id="submit" class="btn btn-primary"> ODOSLAŤ PRIHLÁŠKU</button>
电子邮件响应程序有效,但它不显示来自 HTML 表单中的选定复选框值,消息 ŠKOLENIE: CHECKBOX HERE
有任何想法吗?谢谢
解决方案
你没有这样的变量$post
,但你尝试使用它两次。将其替换为$_POST
您的表单即可。
这个:
$document = implode(", ",$post['document']);
替换为:
$document = implode(", ",$_POST['document']);
它应该工作。
一些提示:
- 正确配置的 IDE 会让您知道诸如未声明变量之类的错误。使用 PHPStorm(商业)或 VSCode(免费)。
- 不要在文件末尾关闭 php 标签 (?>) (PSR2):
关闭 ?> 标记必须从仅包含 PHP 的文件中省略。
- 不要多次使用相同的标识符 (id)。id 在整个 HTML 文档中应该是唯一的。
编辑://正如有人在评论中提到的那样,您没有标签的结束标签<form>
,但我假设您只粘贴了 HTML 文档的一部分。否则,您也应该更正它。
推荐阅读
- swift - 如何将缓存添加到 AsyncImage
- scala - 具有特征的 Scala 依赖注入
- android - 使用 ConcatAdapter 时有什么方法可以应用两个 recyclerview 布局?
- excel - 在带有数据透视表的 excel 中,不要显示没有数据的行
- r - 检查 R 包时如何避免“字体形状未定义”问题?
- python - 如何使用 Python Opencv 完成三个或更多移动摄像头的多线程处理?
- excel - 如何在 VBA 中对不同的 IFS 求和(这不是 SUMIFS 函数)
- mysql - MySQL fallback 多语言和不同的产品
- vue.js - 如何在vue js的一个标签中获得2个选定的下拉选项
- javascript - res.sendFile is being aborted, sending me to localhost:XXXX/?