Witam,
Mam dwa dynamiczne select boxy. Gdy uzytkownik wybiera wartosc z pierwszego select boxa, za pomoca coffeescript odswiezam zawartosc drugiego.
Nastepnym etapem jest przechwycenie wartosci z drugiego select boxa i przekazanie jej do metody helpera ktora buduje tabelke.
Selecty:
_form.html.erb
<div class="card-body card-padding">
<p class="c-black f-500 m-b-20">Accounts</p>
<div class="form-group">
<div class="fg-line">
<div class="select">
<%= f.collection_select :account_id,
Account.where(user_id: current_user).order(:name),
:id,
:name,
{include_blank: true},
{class: "form-control"} %>
</div>
</div>
</div>
</div>
<div class="card-body card-padding">
<p class="c-black f-500 m-b-20">Sites</p>
<div class="form-group">
<div class="fg-line">
<div class="select">
<%= f.grouped_collection_select :site_id,
Account.where(user_id: current_user).order(:name),
:sites,
:name,
:id,
:site_name,
{include_blank: false},
{class: "form-control"} %>
</div>
</div>
</div>
</div>
Ponizej tych selectow znajduje sie helper:
<% dashboard_table(site_id) %>
Coffeescript:
jQuery ->
$('#report_site_id').parent().hide()
$('#report_workbooks_id').hide()
sites = $('#report_site_id').html()
workbooks = $('#report_workbooks_id').html()
$('#report_account_id').change ->
account = $('#report_account_id :selected').text()
escaped_account = account.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(sites).filter("optgroup[label='#{escaped_account}']").html()
if options
$('#report_site_id').html(options)
$('#report_site_id').parent().show()
else
$('#report_site_id').empty()
$('#report_site_id').parent().hide()
site_value = $('#report_site_id :selected').text()
switch
when site_value.length > 0
$('#report_workbooks_id').show()
W ostatniej linijce wyswietlam tabelke ale bez przekazania wartosci z select. Tutaj sie zatrzymalem. Czy jest mozliwosci w coffeescript utworzyc html ktory bedzie wrzucal w kod HTML z motoda helpera z roznymi wartosciami site_id?