2012-04-23 57 views
1

單選按鈕如何作爲參數傳遞?我正在使用Ruby Sinatra Web服務器。我怎樣才能獲得服務器端選定單選按鈕的值?如何在GET請求中傳遞單選按鈕?

HTML

<form method="get" action="/register"> 
    <input type="radio" name="regRadio" value="1" /> 
    <input type="radio" name="regRadio" value="2" /> 
    <input type="radio" name="regRadio" value="3" /> 
    <input type="radio" name="regRadio" value="4" /> 
</form> 

紅寶石

get '/register' do 
    params[:regRadio]?? 
end 
+0

在你的例子中,如果選擇了單選按鈕,它總是會發送'regRadio = 1'。您可能想要爲每個單選按鈕使用不同的值,以便您可以確定哪個實際選定了哪個。 – aroth 2012-04-23 23:22:58

+0

我的錯誤,單選按鈕將有不同的值。 – Takkun 2012-04-23 23:23:29

+0

你問過之前試過你的代碼嗎? – d11wtq 2012-04-23 23:24:53

回答

1

首先,該方法應該是post而不是get。其餘的似乎很好。這個工作對我來說:

require 'sinatra' 

get '/' do 
    <<-HTML 
    <form method="post" action="/register"> 
     <input type="radio" name="regRadio" value="1" /> 
     <input type="radio" name="regRadio" value="2" /> 
     <input type="radio" name="regRadio" value="3" /> 
     <input type="radio" name="regRadio" value="4" /> 
     <input type="submit" value="Register"/> 
    </form> 
    HTML 
end 

post '/register' do 
    "You selected #{params[:regRadio]}" 
end 

當您選擇第三項,然後點擊 「註冊」

form

,你會得到以下結果:

result

如果這不適合你,問題在別處。在這種情況下,請向我們顯示您的實際代碼。

0

這只是一個普通的暗示,因爲它是HTTP,它應該是在紅寶石一樣的。

該值設置在名稱上,它是regRadio。由於兩個單選按鈕的值均爲1,因此如果未設置值,則始終爲值1或爲空。所以它應該是例如2.