Multiselect com checkbox

150 views
Skip to first unread message

Phyllipy Chagas

unread,
May 20, 2013, 8:51:12 AM5/20/13
to rail...@googlegroups.com
Fala gurizada, tenho um form pra filtrar uns dados. Um dos filtros possíveis é por planilhas de tempo. O usuario pode selecionar uma ou mais planilhas para o filtro.
Para fazer isso, inicialmente coloquei um select_tag com o parametro :multiple => true.
Funcionou perfeitamente, mas nao ficou legal, por isso resolvi trocar o select por checkboxes,
algo assim:

<% @planilhas.each do |p|%>                          
<li>                              
<label class="label_ckb"> 
<%= check_box_tag "q_planilha[]", p.id %> <%= p %>
</label>
</li>
<% end %>

O filtro funciona perfeitamente, porém nao salva o estado dos checkboxes entre os posts.
Tipo, clico no botao de filtrar e funciona, porem ao recarregar a pagina, os checkboxes
estao todos desmarcados...

Alguem pode dar uma sugestao? =)

Everaldo Gomes

unread,
May 20, 2013, 9:43:00 AM5/20/13
to rail...@googlegroups.com
Oi Phyllipy! De cabeça não vou lembrar...mas eu sei o que é:

você não mantém os estados (dos items checkados) entre as requisições.

Dê uma olhada neste Railscast....o Ryan usa um hidden_field...


E uma dica: priorize form_for sobre form_tag ...e use accepts_nested_attributes_for

Att.

Everaldo




2013/5/20 Phyllipy Chagas <phyll....@gmail.com>
--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: http://goo.gl/YGgt7
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Phyllipy Chagas

unread,
May 20, 2013, 9:54:04 AM5/20/13
to rail...@googlegroups.com
é que nesse caso, o form nao está diretamente relacionado com um objeto especifico, é mais um form pra filtros mesmo :/,
tentei uma outra abordagem (falcatrua da boa!)

coloquei parametros distintos pra cada checkbox, com base no id da planilha:

<%= check_box_tag "q_planilha_#{p.id}", p.id, "q_planilha_#{p.id}" %> <%= p %>

aih no server recuperei os dados com uma regex:

planilhas_id = params.select {  |key,value| key.to_s.match(/^q_planilha_/) }

novamente, o filtro deu certo, mas os checkboxes ficam sempre checkados depois do post :p


2013/5/20 Everaldo Gomes <everald...@gmail.com>

Phyllipy Chagas

unread,
May 20, 2013, 10:01:27 AM5/20/13
to rail...@googlegroups.com
Caraaa, consegui fazer funcionar de um jeito bem feio :

<%= check_box_tag "q_planilha_#{p.id}", p.id, !params["q_planilha_#{p.id}"].nil? %>


é feio, mas funcionou! xD


2013/5/20 Phyllipy Chagas <phyll....@gmail.com>

Everaldo Gomes

unread,
May 20, 2013, 10:03:17 AM5/20/13
to rail...@googlegroups.com
Tá horrível heheeh..

Procure por check_box_tag na Api do Rails (não consigo mandar o link direto)


Veja os parâmetros value e checked...

Faça o seguinte...extraia os valores de params["q_planilha"] para uma variável....veja o railscast que te mandei.


2013/5/20 Phyllipy Chagas <phyll....@gmail.com>
Reply all
Reply to author
Forward
0 new messages