2012-07-25 167 views
0

好吧,我已經GOOGLE和GOOGLE更多一些,我卡住了。我對PHP的想法確實很陌生,但我最終讓自己的表單做了我想做的事,除了當我將它發送給我的電子郵件時,它只顯示了我檢查過的其中一個框。我真的很討厭尋求幫助,但這裏就是這樣。發送查詢從「檢查」的HTML框通過電子郵件發送電子郵件通過PHP

這裏是我的html:

<tr> 
<td valign="left"><p>Please check all items needed *</p> 
    <p class="style2">(Default order will be one of each checked item unless otherwise indicated in the comments section.)</p> 
<td valign="top"> 
    <div align="left"> 

<input type="checkbox" name="supplies[]" value="black_toner" /> Black Toner<br /> 
<input type="checkbox" name="supplies[]" value="cyan_toner" /> Cyan Toner<br /> 
<input type="checkbox" name="supplies[]" value="magenta_toner" /> Magenta Toner<br /> 
<input type="checkbox" name="supplies[]" value="yellow_toner" /> Yellow Toner<br /> 
<input type="checkbox" name="supplies[]" value="black_drum" /> Black Drum<br /> 
<input type="checkbox" name="supplies[]" value="cyan_drum" /> Cyan Drum<br /> 
<input type="checkbox" name="supplies[]" value="magenta_drum" /> Magenta Drum<br /> 
<input type="checkbox" name="supplies[]" value="yellow_drum" /> Yellow Drum<br /> 
<input type="checkbox" name="supplies[]" value="waste_toner" /> Waste Toner<br /> 
<input type="checkbox" name="supplies[]" value="staples" /> Staples<br /> 
    </div> 
    <td valign="top"> </td> 
</tr> 

而這就像我說的,我已經嘗試了什麼,我認爲是一切,但顯然事情是錯我的PHP

} 
    $email_message = "Form details below.\n\n"; 

function clean_string($string) { 
    $bad = array("content-type","bcc:","to:","cc:","href"); 
    return str_replace($bad,"",$string); 
} 

$email_message .= "First Name: ".clean_string($first_name)."\n"; 
$email_message .= "Last Name: ".clean_string($last_name)."\n"; 
$email_message .= "Company: ".clean_string($company)."\n"; 
$email_message .= "Location: ".clean_string($location)."\n"; 
$email_message .= "Machine Model: ".clean_string($machine_model)."\n"; 
$email_message .= "Supplies: ".clean_string($supplies)."\n"; 
$email_message .= "Email: ".clean_string($email)."\n"; 
$email_message .= "Telephone: ".clean_string($telephone)."\n"; 
$email_message .= "Comments: ".clean_string($comments)."\n"; 


// create email headers 
$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 
?> 

。我需要添加到我的PHP/HTML或更改從我的複選框,而不是隻有一個?如果有人有任何建議,我將不勝感激。 (請儘可能具體,就像我說的,我是一個新手)謝謝!

+1

$ _ POST [「供應」]是一個數組,你需要它發生內爆驚人 – 2012-07-25 20:54:27

回答

0

你沒有表現,你要指定$用品,但它是一個數組。當你分配它時試試這個。

​​3210
+0

非常感謝!像魅力一樣工作。 – 2012-07-26 13:32:36

0

$ supplies是一個數組,因爲您將[]置於其表單中。你必須使用的函數破滅將它們分開:

$supplies = implode(",", $supplies); 
+0

!很簡單。謝謝你的幫助! – 2012-07-26 13:31:13

0
$string = implode(", " $_POST['supplies']); 
0

http://www.kavoir.com/2009/01/php-checkbox-array-in-form-handling-multiple-checkbox-values-in-an-array.html

1)此HTML:

<input type="checkbox" name="tags[]" value="1" /> 
<input type="checkbox" name="tags[]" value="2" /> 
<input type="checkbox" name="tags[]" value="3" /> 
<input type="checkbox" name="tags[]" value="4" /> 

2)......成爲該PHP:

print_r($_POST['tags']); 
// output 
Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 4 
) 

3)在你的情況,如果你只檢查「黑色碳粉」和「青色鼓」的形式,你應該回到數組中的唯一值是「black_toner」和「cyan_drum」。只需修改您的代碼即可處理您獲得的值。 4)我剪切/粘貼你的表單,並設置「action =」一個腳本,調用「phpinfo()」。以下是的phpinfo結果,僅檢查black_toner和cyan_drum:

_POST["supplies"] 

Array 
(
    [0] => black_toner 
    [1] => cyan_drum 
)