2009-12-02 69 views
0

我的關聯數組。成立了以處理宿舍, 角錢和尼克爾斯php關聯數組和開關

$money = array("Nickels" => $_POST["nickels"], "Dimes" => $_POST["dimes"], "Quarters" =>$_POST["quarters"]); 

我的HTML表單在這種情況下,爲了簡便起見沒有顯示。

<label><b>Quarters:</b></label> 
<select name="quarters" > 
<option value=".25">25c</option> 
<option value=".50">50c</option> 
<option value=".75">75c</option> 
<option value="1">$1.00</option> 
</select> 

用戶只能選擇Quarters only,Dimes only或Nickels only。 如果用戶選擇選項值爲0.25的Quarters,則該值將被髮送到 的php腳本。

所以我只是想知道基於一個事實,即用戶可以選擇 宿舍的計算只用一個數值,角錢只有一個值,尼克爾斯只有一個 價值,而不是宗派的組合,

如何設置不同的測試用例,例如,如果用戶選擇 $money["Quarters"]; //使用來自html表單的不同值,例如.25,.50,.75或1,並且只選擇其中一個值將根據用戶選擇的內容通過php腳本。

我可以這樣做:

switch($selection) 
{ 
     case 「Quarters」: 
      echo 「 You chose $money[‘Quarters’]; .<br />」; 
      break; 
     case 「Nickels」: 
      echo 「You chose $money[‘Nickels’]; .<br />」; 
       break; 
     case 「Dimes」: 
      echo 「You chose $money[‘Dimes’]; . <br />」; 
        break; 
default: print 「Please select a Denomination」; 
} 

感謝您沒有燃燒的福利局,我仍然在學習,並在"方面混搭遺憾。

回答

2

表單中的選定值提交爲$_POST['quarters']

我明白了,你要檢查,如果用戶選擇你的<select> S的多個

所以,我想創建一個像這樣的檢查(是否正確?):

$selected = 0; 

if ($_POST['quarters'] != "DEFAULT_VALUE_OF_YOU_SELECT_QUARTERS") 
{ 
$selected++; 
} 

if ($_POST['nickels'] != "DEFAULT_VALUE_OF_YOU_SELECT_NICKELS") 
{ 
$selected++; 
} 

if ($_POST['dimes'] != "DEFAULT_VALUE_OF_YOU_SELECT_DIMES") 
{ 
$selected++; 
} 

if ($selected > 1) 
{ 
// The user has selected more than one 
} 
+0

感謝if結構,是否有一種方法可以限制用戶在給定時間只選擇多個貨幣面值?例如,在任何特定時刻,用戶應該只能使用Quarters而不使用Quarters和其他組合。 – Newb 2009-12-02 14:37:16

+0

如果($選擇爲<= 1),那麼用戶是否只有一個選項?我不想讓用戶選擇不同的選項,這可能會混淆我對不同值的計算,我必須從表格中開始考慮。 – Newb 2009-12-02 14:40:33

+0

永遠不會介意,感謝您的幫助。 – Newb 2009-12-02 15:16:48

0

這裏有幾件事要注意。

因此,首先,您的$money數組捕獲用戶提交的每個值。

接下來,您設置了HTML <select>語句的方式,沒有默認值。 $_POST["quarters"]中的第一個選項將是.25,即使用戶從未觸摸過該下拉菜單。爲了避免這種情況,你會希望添加到宿舍<select>

<option value="0">-- Select Quarters --</option> 

但卻仍不能讓你使用一個開關/ case語句。您仍將爲每個HTML <select>標籤提交一個值。 Florian Peschka的解決方案更好,因爲它會檢查每個下拉菜單,確保它們只使用一個,並且可能會顯示一條消息。

終於......我不知道$selection在你的例子中指的是什麼。您正在填充$money陣列,因此$selection變量不存在。

如果您澄清您的問題,我可以提供進一步的幫助。

+0

我最初打算使用if,else和else if,但我希望我可以使用一個開關,我猜不是。我想知道的是用戶選擇了哪個值並對該值進行計算。 – Newb 2009-12-02 14:29:40

+0

我會爲每個面額添加