【发布时间】:2015-11-03 21:19:30
【问题描述】:
我正在创建一个带有选择、输入、单选按钮和复选框等的表单。 我的问题的部分代码是这样的:
formulario.html
<form action="suporte_email.php" method="post" name="formulario" id="formulario" >
<div class="conjunto7" id="conjunto7">
<label for="garantia">Garantia</label><br>
<div>
<input id="radio1" type="radio" name="radio" value="Sim">
<label for="radio1"><span><span></span></span> Sim </label>
</div>
<div>
<input id="radio2" type="radio" name="radio" value="Não">
<label for="radio2"><span><span></span></span> Não </label>
</div>
</div>
<br><br><br><br>
<div class="conjunto8" id="conjunto8">
<label for="contrato">Contrato</label><br>
<div>
<input id="checkbox1" type="checkbox" name="checkbox" value="Sim">
<label for="checkbox1"><span></span> Sim </label>
</div>
<div>
<input id="checkbox2" type="checkbox" name="checkbox" value="Não">
<label for="checkbox2"><span></span> Não </label>
</div>
</div>
</form>
suporte_email.php
//Get Data
$nome = $_POST['nome'];
$empresa = $_POST['empresa'];
$contacto = $_POST['contacto'];
$email = $_POST['email'];
$marca = $_POST['marca'];
$other = $_POST['other'];
$serial_number = $_POST['serial_number'];
$garantia = $_POST['garantia'];
$contrato = $_POST['contrato'];
$permissoes = $_POST['permissoes'];
$descricao_avaria = $_POST['descricao_avaria'];
$checkbox = $_POST['checkbox'];
$radio = $_POST['radio'];
// Parse/Format/Verify Data
$to = "teste@gmail.com";
$from = '';
$subject = "Formulário de Suporte";
$email_body = "$crlf De: $nome$crlf Email: $email$crlf Assunto: $subject$crlf$crlf Empresa: $empresa$crlf Contacto: $contacto$crlf Marca: $marca$crlf Outra: $other$crlf Número de Série: $serial_number$crlf Garantia: $garantia$crlf Contrato: $contrato$crlf Tipo de Suporte: $permissoes$crlf$crlf Descrição da Avaria: $descricao_avaria";
// Setup EMAIL headers, particularly to support UTF-8
// We set the EMAIL headers here, these will be sent out with your message
// for the receiving email client to use.
$headers = 'From: ' . $from . $crlf .
'Reply-To: ' . $email . $crlf .
'Content-Type: text/plain; charset=UTF-8' . $crlf .
'Para: Website' . $to . $crlf .
'X-Mailer: PHP/' . phpversion();
// Then we pass the headers into our mail function
mail($to, $subject, $email_body, $headers);
header('Location: agradecimentos.html');
}
基本上,当我收到电子邮件时,单选按钮和复选框中的变量不会出现。我想从收音机和复选框接收选定的值。
P:S: 还尝试将$garantia 的位置更改为$radio,将$contrato 的位置更改为$checkbox。
【问题讨论】:
-
您的收音机和复选框在 POST 上相互覆盖。您需要具有诸如
name="checkbox[]"之类的字段名称 - 以便您可以发布一个数组。然后,在 PHP 中,您可以通过$_POST['checkbox']访问它们或将它们内爆成单个字符串implode(", ", $_POST['checkbox']) -
@HalfCrazed 所以我更改了 name="radio" 我把 name="radio[]" 放在哪里和 name="checkbox" 我把 name="checkbox" 放在哪里对吗?我将尝试运行该代码并告诉你是否有效:D 谢谢!
-
非常感谢@HalfCrazed 的帮助,但我用 foreach 编写了代码,但它仍然没有发送带有 radio 和 checkbox 值的电子邮件。
标签: php html checkbox radio-button forms