2012-01-05 26 views
2

我對這個主頁有問題。每個表單的Radiobutton或者所有單選按鈕的1個表單?

我要創建這樣一個網站:

status create work finished 

Item1 *  o  o 
Item2 o  *  o 
Item3 o  o  * 

(* =檢查,O =未選中)

現在,作爲管理員,我必須改變每個項目的狀態的權利。

例如,當我將狀態從Item1更改爲「工作」時,它應該發送一個表單並在數據庫中進行更新。

我的問題是知道,我應該創建每對3個單選按鈕1表單?

但是當我爲所有按鈕創建1時,我將遇到問題以知道哪些狀態發生了變化。
只與每個數據庫條目比較。

有人問之前,我應該使用單選按鈕。 希望有人能幫助。

格爾茨

Demonking

編輯:對不起,eomeone有誤會我的意思。 我的意思是,如果我會更快,更好地與:

<form method="post"> 
Item 1 <input type="radio" name="item1" value="create" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="work" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="finished" onclick="this.form.submit()"/> 
</form> 

<form method="post"> 
Item 2 <input type="radio" name="item2" value="create" onclick="this.form.submit()"/> 
<input type="radio" name="item2" value="work" onclick="this.form.submit()"/> 
<input type="radio" name="item2" value="finished" onclick="this.form.submit()"/> 
</form> 

<form method="post"> 
Item 1 <input type="radio" name="item1" value="create" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="work" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="finished" onclick="this.form.submit()"/> 
Item 2 <input type="radio" name="item2" value="create" onclick="this.form.submit()"/> 
<input type="radio" name="item2" value="work" onclick="this.form.submit()"/> 
<input type="radio" name="item2" value="finished" onclick="this.form.submit()"/> 


</form> 

因爲PHP/MySQL性能

+0

將每個項目的單選按鈕分組並使用單個表單 - 然後使用'change'事件來決定什麼時候改變... – ManseUK 2012-01-05 13:01:03

回答

2

我可能會使用一種形式,然後執行所有值的數據庫更新。
然後我會使用JavaScript來增加頁面,即保持它不支持/執行JavaScript,但有一個提交處理程序,只發送在執行JavaScript的客戶端中更改的值的客戶端工作。
然後我會做一些基準測試/分析來檢查「只更改值」版本是否比「更新所有值」版本更快/更好。如果不是javascript部分是歷史;-)

+0

您好,我基準它與100000個元素,並從每個項目更改所有狀態 查詢OK,128683行受影響(1.16秒) – demonking 2012-01-05 13:43:45

1

的給每一個單選按鈕適當namevalue。然後你可以檢查選擇了哪個單選按鈕。

爲同一項目的每個單選按鈕指定相同的名稱,但給它一個不同的值。然後,您在提交後每個項目都有一個值。

例如, $ _POST ['item1']應該包含'創建','工作'或'完成'。

然後使用javascript來檢測哪一個被更改。

+0

這可能是一個1000個項目的問題:/ 我可以迭代它與foreach,但將不得不更新所有行 – demonking 2012-01-05 13:50:58

1

這是它應該如何工作的一個例子,我想你可以找出其餘的。是的,你需要3個單選按鈕。

<form method="post"> 
Item 1 <input type="radio" name="item1" value="create" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="work" onclick="this.form.submit()"/> 
<input type="radio" name="item1" value="finished" onclick="this.form.submit()"/> 
</form> 
相關問題