2014-10-05 106 views
0

我正在嘗試創建一個引用表單。這將通過電子郵件發送給我自己和填寫表格的人。我想回顯選定的值(我目前有這個工作)&給選擇分配一個整數值。然後我想要添加整數來給出總數。在我的下面的例子中,我只包含了一個選擇,但我將在表單中包含其中的一些。任何幫助將是偉大的!引用表單 - 從PHP表單選擇回覆兩個值

<label>What time would you like to start? 
    <select required name="drop_off_time" id="drop_off_time-select" value="<?php if(isset($_POST['drop_off_time'])) echo $_POST['drop_off_time'];?>"> 
     <option value="0"></option> 
     <option value="8:00am">8:00am</option> 
     <option value="8:30am">8:30am</option> 
     <option value="9:00am">9:00am</option> 
    </select> 
</label> 


if(isset($_REQUEST['drop_off_time']) && $_REQUEST['drop_off_time'] == '0') { 
echo 'Please select a time.'; 
} 
$drop_off_time = $_POST['drop_off_time']; 


$emailTo = '[email protected]'; 
$subject = 'Fees Form Submission from '.$name; 
$sendCopy = trim($_POST['sendCopy']); 
$body = "Name: $name \n\nEmail: $email \n\nComments: $comments \n\nDrop Off Time: $drop_off_time \n\nTotal: £$total"; 
$headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email; 

mail($emailTo, $subject, $body, $headers); 

這一切工作正常。我的問題是,我想爲選擇分配一個整數。我已經使用開關完成了這一操作,但它不斷輸出所選值而不是我已分配的新值。代碼如下。

$drop_off_time_price = 0; 
switch ($drop_off_time_price) { 
case 0; 
    echo 0; 
    break; 
case "8:00am": 
    echo 100; 
    break; 
case "8:30am": 
    echo 10000; 
    break; 
case "9:00am": 
    echo 100000; 
    break; 
} 

//Getting the total 
$total = $drop_off_time_price; 

這是電子郵件的樣子

名稱:Frank

電子郵件:[email protected]

評論:我得到的選定值,但沒有總... 。

車時間:上午8:00

總計:£0

回答

2

您的邏輯的幾個問題:

  1. 你應該檢查對$ drop_off_time在switch語句。所以它應該是:

    switch ($drop_off_time) { 
    
  2. as @FloatingRock has mentioned,case 0;應該是:

    case 0: 
    
  3. 取代echo 0應該是值賦給$drop_off_time_price

    $drop_off_time_price = 0; 
    

所以,你的完整的例子應該是這樣的:

$drop_off_time_price = 0; 
    switch ($drop_off_time) { 
     case "8:00am": 
      $drop_off_time_price = 100; 
      break; 
     case "8:30am": 
      $drop_off_time_price = 10000; 
      break; 
     case "9:00am": 
      $drop_off_time_price = 100000; 
      break; 
    } 

注:您也可以從我的示例中刪除0的檢查,因爲y ou已經將0的默認值設置爲0價格。

+0

更全面的答案。你有我的投票.. – FloatingRock 2014-10-05 12:44:21

+1

Thanks @Kypros!我改變了我的開關來檢查$ drop_off_time並完美地工作。我真的很感激你的明確答案 – 2014-10-05 12:53:07

+0

有趣的事情@StuartNelson。這很好,因爲這意味着你確實得到了這個問題。如果它解決了您的問題,請接受答案。 :) – Kypros 2014-10-05 12:57:33

0

在你switch聲明中,你使用case 0;當它應該是case 0:與代碼:

+0

感謝您指出了這一點!仍然只得到0我的總數。任何其他想法? – 2014-10-05 12:39:52

0

你的第二塊,它使用的是明顯分配一個整數,似乎沒有你想要的。我想,你使用這個塊來計算$ total,然後在你的電子郵件正文中使用$ body。但是,開關塊不會計算或分配任何內容給任何變量。它只是打印出一些值 - 在你的例子中是0。

我的建議:請張貼所有的代碼,你可能會得到一個詳細的答案。