[英]PHP - Display checkbox label instead of its value in E-mail
知道如何在 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])){
$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="document1" class="dolava">§20 Poučená osoba</p>
<input type="checkbox" name="document[]" value="document1" id="document1">
<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="document2">
<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="document3">
<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="document4">
<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>
</form>
電子郵件回復器可以工作,但不顯示選中的復選框標簽,而只顯示來自 HTML ŠKOLENIE 的值: CHECKBOX LABEL HERE
有任何想法嗎? 謝謝
HTML:
<form method="post" action="test.php">
<p class="center">Vyberte školenie</p>
<label class="container riadok"><p for="document1" class="dolava">§20 Poučená osoba</p>
<input type="checkbox" name="document[1]" value="document1" id="document1">
<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[2]" value="document2" id="document2">
<span class="checkmark"></span>
</label>
<label class="container riadok"><p for="document" class="dolava">§21 Elektrotechnik</p>
<input type="checkbox" name="document[3]" value="document3" id="document3">
<span class="checkmark"></span>
</label>
<label class="container riadok"><p for="document" class="dolava">§24 Revízny technik</p>
<input type="checkbox" name="document[4]" value="document4" id="document4">
<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>
</form>
PHP:
<?php
$translation_table = array(1 => '§20 Poučená osoba', 2 => 'Aktualizácia: §21 AŽ §24'); // fill it yourself, I am not going to do that, just add another numbers and labels
if(isset($_POST['document'])){
foreach($_POST['document'] as $id => $val){
echo $translation_table[$id] . " = " . $val . "<br />";
}
}
?>
這應該可以幫助您解決問題。
標簽不會在表單提交中自動發送。
您可以更改 HTML,以便在復選框值中包含標簽。
<label class="container riadok"><p for="document1" class="dolava">§20 Poučená osoba</p>
<input type="checkbox" name="document[document1]" value="§20 Poučená osoba<" id="document1">
然后在 PHP 中你做:
foreach ($documents as $key => $label) {
if (isset($documents[$key])) {
$message = "ŠKOLENIE: $label";
}
}
此外,每次循環都會覆蓋$message
。 您應該附加到它,而不是替換它。
$message .= "
ŠKOLENIE: $label
";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.