Как я могу получить все проверенные элементы из отправленной формы с параметрами синатры? - PullRequest
1 голос
/ 15 июня 2010

Я использую Sinatra 1.0 с HAML, в моей форме есть несколько флажков, например, книги, которые мне нравятся, и вы выбираете все книги, которые хотите. Название флажка - «книги».

В параметрах sinatra ['books'] должен быть массив всех проверенных книг, но он содержит только последний проверенный элемент, а не массив.

Как я могу получить все проверенные товары?

HAML:

%form{:action => "/test", :method => 'post'}
  %input{:name=>'check',:type=>'checkbox',:value=>'item1'} item 1
  %input{:name=>'check',:type=>'checkbox',:value=>'item2'} item 2
  %input{:name=>'check',:type=>'checkbox',:value=>'item3'} item 3
  %input{:type => "submit", :value => "send", :class => "button"}

Sinatra get method

post '/test' do
  puts params['check'] #should be an array but is last item checked
end

Ответы [ 3 ]

3 голосов
/ 28 декабря 2010

Очень близко, но не только цифры в массивах

%form{:action => "/test", :method => 'post'}
    %input{:name=>'check[]',:type=>'checkbox',:value=>'item1'} item 1
    %input{:name=>'check[]',:type=>'checkbox',:value=>'item2'} item 2
    %input{:name=>'check[]',:type=>'checkbox',:value=>'item3'} item 3

Теперь

post '/test' do  
  puts params['check'] #puts an array of what was checked to stdout
end
0 голосов
/ 01 января 2012

Попробуйте


%input{:type => "checkbox", :value => "1", :name => "checkbox[]", :id => "id1"} Chk1
%input{:type => "checkbox", :value => "2", :name => "checkbox[]", :id => "id2"} Chk2
%input{:type => "checkbox", :value => "3", :name => "checkbox[]", :id => "id3"} Chk3

Затем в рельсах или синатрах


puts params[:checkbox]

Затем вы сможете увидеть проверенные предметы.

0 голосов
/ 15 июня 2010

Не приведет ли это к выводу нескольких флажков с одинаковыми именами?Если это так, params ['check'], вероятно, заменяется каждым новым флажком.

Попробуйте присвоить каждому другое имя.Если вы действительно хотите это в массиве, попробуйте взломать имена:

%input{:name=>'check[1]',:type=>'checkbox',:value=>'item1'} item 1
%input{:name=>'check[2]',:type=>'checkbox',:value=>'item2'} item 2
%input{:name=>'check[3]',:type=>'checkbox',:value=>'item3'} item 3
...