2014-07-22 28 views
-5

我有一個下拉菜單,複選框,單選選項的接觸形式,但我不能讓複選框被髮送到我的郵箱 我嘗試這樣做:獲取與方法電子郵件複選框值=「POST」

<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='[email protected]'; 

$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%確定我做錯了什麼。 在此先感謝您的幫助或提示!

+1

您可以使用格式化字符串' foreach'爲您的複選框。 I.e .:'foreach($ _ POST ['findout'] as $ check){echo $ check;}' –

+0

'$ findout'是一個選中值的數組。你需要使用'implode(',',$ findout)'這樣的字符串來獲得一個可以在你的電子郵件中使用的字符串。 – Stefan

回答

3

使用foo[]在PHP中命名hack導致foo成爲$ _POST中的數組。因爲你只是直接複製該數組變量:

$foo = $_POST['foo']; 

,然後嵌入在電子郵件中的VAR,你只得到

Se entero: Array 

在您的電子郵件。您必須執行以下操作:

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

將數組轉換爲普通字符串。

+0

Marc B的解決方案非常完美!非常感謝! – hachipark

0
$findout = $_POST['findout']; 

是奇異值的數組,你需要遍歷他們得到的每個值

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

然後取決於你想要怎麼看

+0

Mark B對我使用了不同的方法,他對這種情況更好。 – JammyDodger231

相關問題