2013-03-05 62 views
0

我見過很多與此類似的問題,但由於我是PHP新手,我很難將該功能放在正確的位置。我已經用PHP和HTML拼湊了一些東西,但我似乎錯過了$radio區域的一些東西。有沒有人有什麼建議?發送PHP表單到基於單選按鈕的不同電子郵件

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 
$radio = isset($_POST['radio']) ? $_POST['radio'] : 'default'; 
switch ($radio) { 
case 'Eval CH': 
$to = '[email protected]'; 
    break; 
case 'Eval ELL': 
$to = '[email protected]'; 
    break; 
} 
$message = $_POST['message']; 
$from = 'From: WAC Site'; 
$subject = 'WAC Contact Message'; 
$human = $_POST['human']; 

$body = "From: $name\n E-Mail: $email\n Message:\n $message"; 

if ($_POST['submit'] && $human == '4') {     
    if (mail ($to, $subject, $body, $from)) { 
    echo '<p>Your message has been sent!</p>'; 
} else { 
    echo '<p>Something went wrong, go back and try again!</p>'; 
} 
} else if ($_POST['submit'] && $human != '4') { 
echo '<p>Either you are a robot, or you are very, very bad at math.</p>'; 
} 
?> 

這裏是我的HTML:

<form method="post" action="contact_options.php"> 

<label>Name</label><br> 
<input name="name" placeholder="Type Here"><br> 
<br>   
<label>Email</label><br> 
<input name="email" type="email" placeholder="Type Here"><br> 
<br> 
<input type="radio" name="Eval CH" value="to">Email Blah<br> 
<input type="radio" name="Eval ELL" value="to">Email Sigh<br> 
<label>Message</label><br> 
<textarea name="message" placeholder="Type Here"></textarea><br> 
<br> 
<label>*What is 2+2? (Anti-spam)</label> 
<input name="human" placeholder="Type Here"><br />   
<input id="submit" name="submit" type="submit" value="Submit"><br> 

</form> 

回答

0

的問題是,$_POST['radio']不存在你有你的表格設置的辦法扭轉名稱和值。只有帶有name=的東西纔會被傳遞給$_POST超全球。

變化在你的PHP處理程序的條件是:

但是,你真的有3個條件,在這裏:

$_POST['Eval CH'] 
$_POST['Eval ELL'] 
None selcted 

所以真的是你的速記不在這裏工作了,因爲你需要

if 
elseif 
else 

所以你真的需要更多adv像這樣:

if (isset($_POST['Eval CH'])) { 
    $to = '[email protected]'; 
} 
elseif (isset($_POST['Eval ELL'])) { 
    $to = '[email protected]'; 
} 
else { 
    $to = '[email protected]'; 
} 

希望這會有所幫助。

-1

你的單選按鈕應該有一個共同的名字和應有的價值。他們應該是這樣的:

<input type="radio" name="contact_option" value="Eval CH">Email Blah<br> 
<input type="radio" name="contact_option" value="Eval ELL">Email Sigh<br> 

然後,在您的文章,你可以用這個替換您的行:

$radio = isset($_POST['contact_option']) ? $_POST['contact_option'] : 'default'; 

此外,if ($_POST['submit']) { }應該去周圍的代碼,整段當您發佈,不只是檢查你是否是人。

+0

這也不起作用。將兩個項目命名爲相同的東西時,將信息提交給服務器時會丟失一個或另一個項目。 – 2013-03-05 04:25:06

+1

是的,我知道。這些是單選按鈕而不是複選框。這是應該的。非此即彼。爲什麼downvote? – SeanWM 2013-03-05 13:13:50

+0

我的不好。我想,當我非常疲倦時,我不應該試圖用他們的代碼來幫助別人。 – 2013-03-05 14:03:56

-1

嘗試在單選按鈕

<input type="radio" name="to" value="Eval CH">Email Blah<br> 
<input type="radio" name="to" value="Eval ELL">Email Sigh<br> 
+0

這不會有所作爲。總是可以適應PHP處理程序本身。 – 2013-03-05 04:15:48

相關問題