2011-11-29 97 views
0

我在表單中有四個選擇框。用戶只能從一個選擇框中選擇一個值,四個中的哪一個並不重要。鑑於我不能使用JS(會更容易),並且每個選擇框都有自己的名稱,我如何檢查是否只選擇了其中一個?如何檢查是否選擇了多個選擇框

例如,如果只有一個被選中,則可以。但是,如果有多個選擇我想顯示一個錯誤。

我想寫幾個if()語句,但我實際上正在尋找更優雅的解決方案。

我正在使用PHP。

這裏有一個表格樣本:

<select name="hr_id"> 
    <option value="1">...</option> 
</select> 

<select name="pr_id"> 
    <option value="1">...</option> 
</select> 

<select name="dev_id"> 
    <option value="1">...</option> 
</select> 

<select name="sales_id"> 
    <option value="1">...</option> 
</select> 
+0

爲什麼不使用默認具有此功能的單選按鈕? – meouw

+0

檢查名稱屬性:name =「selected []」,或者更好,因爲你會使用單選按鈕! – Drewdin

+0

因爲對於每個選擇框我有不同類型的信息。 @Drewdin:我說我不能使用JS。 – Psyche

回答

3
if(($_POST['hr_id']+$_POST['pr_id']+$_POST['dev_id']+$_POST['sales_id'])!=1) { 
$error=true; 
} 

編輯:我想這是不完全不夠靈活。你也可以這樣做:

$fields = array('hr_id','pr_id','dev_id','sales_id'); 
$i=0; 
foreach($fields as $k->$v) { 
    $i = ($_POST[$v]!="" ? ++$i : $i); 
} 
$error = ($i == 1 ? false : true); 
+0

這看起來不對。如果我從值爲「125」的「sales_id」中選擇一個項目,該怎麼辦? :) – Psyche

+0

我剛剛開始的樣品。所有的值都是1,在這種情況下它會起作用,在你的「125」情況下它不會。 – jfable

+0

謝謝jfable,但不幸的是並不是所有的值都是「1」。 – Psyche

0

爲什麼不使用它在默認情況下此功能單選按鈕?

<input type="radio" name="preference" value="red" /> Red<br/> 
<input type="radio" name="preference" value="blue" /> Blue<br/> 
<input type="radio" name="preference" value="green" /> Green<br/> 
<input type="radio" name="preference" value="yellow" /> Yellow<br/> 

When submitted 

$preference = $_GET['preference']; //cleaning omitted 
+0

因爲單選按鈕不符合要求。 – Psyche

+0

好的,祝你好運:) – meouw