使用method =" post"获取电子邮件中的复选框值

时间:2014-07-22 15:52:50

标签: php jquery html checkbox

我有一个联系表单,包含下拉菜单,复选框和电台选项,但我无法将复选框发送到我的电子邮箱 我试过这个:

<label class="labelleft">¿Cómo se enteró de nosotros?</label>
        <label class="labelright"><input type="checkbox" name="findout[]" value="Email" />Email</label>
        <label class="labelright"><input type="checkbox" name="findout[]" value="Buscador"/>Buscador</label>
        <label class="labelright"><input type="checkbox" name="findout[]" value="Revista"/>Revista</label>
        <label class="labelright"><input type="checkbox" name="findout[]" value="Expo"/>Expo</label>
        <label class="labelright"><input type="checkbox" name="findout[]" value="Redes Sociales"/>Redes Sociales</label>

我正在使用这个:

<form id="form1" name="form1" method="post" action="enviar.php">

和php是:

<?php 
$mail='mail@mail.com'; 

$name = $_POST['name']; 
$email= $_POST['email'];
$phone = $_POST['phone'];
$giro = $_POST['giro'];
$negocio = $_POST['negocio'];
$dist = $_POST['dist'];
$findout = $_POST['findout'];
$rb= $_POST ['rbtn'];
$message = $_POST['message']; 
$thank="gracias.html"; 
$message = " 
Nombre: " .$name." 
Correo Electronico: " .$email." 
Telefono: " .$phone." 
Compania: " .$giro." $rb
Tipo de Negocio: ".$negocio."
Distribuidor: ".$dist."
Se entero: ".$findout."
Mensaje: " .$message."
"; 

if (mail($mail,"NIBO",$message)) 
Header ("Location: $thank"); 

?>

我刚刚发布了复选框的html部分。 当我发送电子邮件时,所有即时通讯都是“数组”这个词

不是100%确定我做错了什么。 提前感谢您的任何帮助或提示!

2 个答案:

答案 0 :(得分:3)

在PHP中使用foo[]命名黑客会导致foo成为$ _POST中的数组。因为您只是直接将该数组复制到变量:

$foo = $_POST['foo'];

然后将该var嵌入到您的电子邮件中,您只需

Se entero: Array

在您的电子邮件中。你必须做类似的事情:

$foo = implode(',', $_POST['foo']);

将数组转换为纯字符串。

答案 1 :(得分:0)

$findout = $_POST['findout'];

是一个奇异值数组,您需要循环它们以获取每个值

$findout = "";
foreach($_POST['findout'] as $findout){
   $findout .= "{$findout} ";
}
$findout = rtrim($findout);

然后根据你想要的样子格式化你的字符串