2012-11-26 54 views
0

我剛剛遇到了關於如何使用單選按鈕的問題。所以這是我的代碼: 在GSP單選按鈕,對或錯

<g:each in="${Query1}"> 
<label for="account_expired">Account Expired:</label><br /> 
      <input type="radio" name="acc_expired" value="${it.acc_exp}" checked="checked"> True 
       <input type="radio" name="acc_expired" value="${it.acc_exp}"> False 
<br /> 
</g:each> 

在我的控制器:

if(params.username != null) 
    { 
    String updateQuery = "UPDATE sec_user SET account_locked='"+params.account_locked+"' WHERE Username='"+params.username+"'" 


    String queryname = "select * from sec_user where username = '"+params.username+"'" 
    def Query1 = sql.rows(queryname) 

    def update = sql.executeUpdate(updateQuery) 

    [update:update, Query1:Query1] 

    } 

所以,我想要做怎樣的單選按鈕,檢查哪些值是去到「檢查' 單選按鈕。因爲我正在做一個編輯頁面,所以控制器將從數據庫中檢索信息並自動選擇單選按鈕,無論是「真」還是「假」。在這種情況下,它可以是'1'或'0'。那麼有沒有人可以幫助我呢?

非常感謝你們。

回答

5

爲了讓您的視圖正確檢查您想要的收音機,您需要添加一個表達式到您的標籤。另外我懷疑你不希望每個按鈕具有相同的值。我猜猜一個人應該是真的,另一個是真的。

<input type="radio" name="acc_expired" value="${true}" ${it.acc_exp == true ? 'checked="checked"' : ''}> True 
<input type="radio" name="acc_expired" value="${false}" ${it.acc_exp == false ? 'checked="checked"' : ''}> False 

PS。你可能想查詢SQL注入。

+0

值$ {true}中的變量。我需要將它放在控制器中嗎? – user1681961

+0

true不是一個變量,它是布爾值爲true的Java關鍵字,可在任何表達式中使用。 – doelleri

+0

哦,它已經工作了,非常感謝你!無論如何,你爲什麼要我查看SQL注入? – user1681961

0

將您具體解釋一下,但是這可能會幫助你http://grails.org/doc/latest/ref/Tags/radioGroup.html

boolean[] acc_expired= [] //in your controller 

和迭代這個數組得到他們選中或取消選中指數。

+0

好吧,例如單選按鈕是真或假。所以,現在在控制器中,我必須從數據庫中選擇查詢並將其傳送到單選按鈕。如果我們假設查詢結果是'1'。單選按鈕true將被'檢查'。但單選按鈕或控制器如何確定檢查哪個單選按鈕?你明白我想說什麼嗎? – user1681961

+0

只是把這個布爾類型的數組。記住這個數組的名字必須是你單選按鈕的名字。 //像這樣boolean [] acc_expired = [] –

+0

你有一個例子嗎?因爲我對它的工作原理感到困惑。好的,等等,我向你展示我的完整代碼,瞭解更新和選擇如何工作。 – user1681961