2012-04-02 35 views
0

我有一個表格,允許用戶選擇他們希望申請的許可證類型。有三種許可證類別和八種許可證類型。可以使用PHP完全處理表單提交或我是否需要其他技術?

請看看這張截圖爲更好地理解:http://imgur.com/qOlv8

對於類,用戶只能選擇1但對於類別的用戶可以申請多個或單個。

用戶可以選擇2個類別,但0類。同樣,用戶可以選擇1個類別和0個類別。但用戶至少必須從11個選項中選擇一些。

例如,用戶只申請1級或者用戶申請CAT 2TT和CAT 3PG。

編碼到我的表格:

<div class="contents"> 
    <form id="applicationoptions" method="post" action="s_apply_now.php"> 
    <div id="optionshead">Class :</div> 
     <div id="classoptions"> 
      <input type="radio" name="class" value="1" /> Class 1 Permit    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="radio" name="class" value="2" /> Class 2 Permit &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="radio" name="class" value="3" /> Class 3 Permit 
     </div> 
    <div id="optionshead2">Categories :</div> 
     <div id="catoptions"> 
      <input type="checkbox" name="cat" value="1" /> CAT 2PG &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="checkbox" name="cat" value="2" /> CAT 1OR &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="checkbox" name="cat" value="3" /> CAT 2TT <br/><br/> 
      <input type="checkbox" name="cat" value="4" /> CAT 3PG &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="checkbox" name="cat" value="5" /> CAT 2OR &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="checkbox" name="cat" value="6" /> CAT 3TT <br/><br/> 
      <input type="checkbox" name="cat" value="7" /> CAT 4PG &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="checkbox" name="cat" value="8" /> CAT 3OR 
     </div> 
    <div class="applynext"> 
<input class="applynextbutton" type="submit" name="applynextbutton" value="PROCEED" /> 
</div> 
    </form> 
    </div> 

用戶檢查自己的選擇後,系統會再分開的選擇,並將它們存儲在數據庫中。

數據庫模式: 許可證(PID,EID,PTYPE,地位,MID,HRID)

如果用戶沒有選擇任何內容,系統會提醒他們,並要求他們選擇一些

如果用戶選擇超過2班時,系統會提醒他們只選擇1班。

你們認爲什麼? PHP能夠讓我完成這些意圖嗎?

P.S .:請告訴我如何在不使用太多的情況下製作空間&npsb;。有沒有辦法將單選按鈕更改爲複選框並禁用多選?

夥計們...我有一個問題...我如何在PHP中檢索數據複選框?任何例子? 我試過陣列[]它,但似乎無法工作..

+0

PHP是一個完全圖靈完整的語言。是的,它可以讓你用代碼表達這一點。 – deceze 2012-04-02 00:48:01

+1

爲什麼人們把我投給我但不告訴我什麼是錯?困惑 – Hubert 2012-04-02 00:48:36

+0

@deceze嗯我需要使用任何其他語言,使這項工作? – Hubert 2012-04-02 00:49:54

回答

1

是的PHP將工作。您可以通過$ _POST集合獲取必要的數據,並與您用來存儲數據的任何數據庫進行通信。

對於間距,我建議learning CSS,並避免添加大量的非休息空間。

至於處理複選框的值,它看起來像你想允許用戶選擇對應於一個名稱(類和貓)的多個值。就像你所擁有的那樣,PHP將會以他們選擇的最後一個值結束。您可以修改表單輸入的名稱,以使PHP將它們視爲後端數組。然後,當你抓住$ _POST ['class'],你會得到一個數組。

<input type="checkbox" name="class[]" value="1" /> First class 
<input type="checkbox" name="class[]" value="2" /> Second class 

如果這兩個都被用戶選中,您將在PHP

看到這個
$classes = $_POST['class']; 
// array(1, 2) 

如果他們只選中一個,你將有數組中只有一個元素。

你甚至可以把它關聯數組,如果您的數組中有按鍵更容易地處理數據:

<input type="checkbox" name="class[first]" value="1" /> First class 
<input type="checkbox" name="class[second]" value="2" /> Second class 

和PHP

$classes = $_POST['class']; 
// array('first'=>1, 'second'=>2) 
+0

謝謝...嗯...我如何將數組結果分離爲單個變量?我知道我需要一個循環嗎? – Hubert 2012-04-02 14:14:32

+0

hmm我可以使用list()和split()分別分割結果嗎? – Hubert 2012-04-02 15:53:15

+0

當然,如果它是一個數組,你可以遍歷從$ _POST脫離的變量。我建議使用list()。你不需要拆分任何值,它們都將成爲數組中的自己的條目。 – 2012-04-02 16:14:43

1

沒有問題的PHP,它笑着這樣做,並獲得了懶惰。但沒有笑話:絕對沒有問題。你可以使用盡可能多的if和else語句(在最大的執行時間內,但是不要讓它比現在更難)。

至於你的複選框問題,建議,因爲你現在是正確的方法。但是,您可以使用JavaScript功能將標準複選框功能「黑客入侵」。有關信息,請參閱http://www.velocityreviews.com/forums/t80854-how-to-allow-only-one-checkbox-to-be-checked-in-a-group-of-checkboxes.html和/或Javascript and only one Checkbox - undefined

你也可以使收音機看起來更好,在這裏尋找更多關於該信息的信息http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/你也可以添加一個空白收音機,標籤爲'Nothing'來選擇,並讓這個標準被選中。這將解決你的問題 - 許多道路通往羅馬。 :)

至於最後的空間問題,請使用適當的化妝。

<div style="width: 250px;">a button</div> 
<div style="width: 250px; float: right;">a second button</div> 

for exampe。您還可以使用較老的表格結構:

<table><tr><td width="250">a button</td><td width="250">a second button</td></tr></table> 

其中表格是表格,tr行和td單元格。

+0

oh yah我tollay忘記使用一張桌子......因爲我聽說如果你的桌子上有div標籤根本不起作用......這是真的嗎? – Hubert 2012-04-02 01:45:47

+0

不,不正確。但一定要把它們放在'

​​
'here '
'。你可以放一個'
' around a '
'too! '
',所以你有充分的靈活性。 – ArendE 2012-04-02 01:54:03

相關問題