現在、名前と電話番号を使用する単純なドロップダウンリストを作成しようとしています。選択したオプションをクリックすると、ページ上の子オブジェクトあなたがAjaxを使って入力した選択肢のオプションです。ajaxでレールの一部を更新する
つまり、ドロップダウンメニューからUser1 | 555-555-5555
を選択すると、2番目の部分的な部分にあるUser1のすべての報告権限のリストが返されます。
私はこれが簡単な質問だと知っていますが、私はそれを動作させるためにJavaScriptを書く方法はあまりよく分かりません。
class Admins::ReportapprovalsController < ApplicationController
def index
@reportapprovals = Reportapproval.all(table:params[:table], per_table: 4)
end
def show
@reportapproval = Reportapproval.find(params[:id])
end
end
第二リスト部分...
<select id="adminDropDown" onchange= "chooseManager();" class="form-control">
<% if current_admin.manager_approvals.blank? %>
<option>No Sub-Accounts added, Add one today!</option>
<% elsif current_admin.manager_approvals.all? { |ma| ma.manager_approved == false }%>
<option>No Sub-Accounts approved yet!</option>
<% else %>
<% current_admin.manager_approvals.where(manager_approved: true).each do |ma| %>
<option value="<%= ma.id %>"><%= ma.manager_company %> | <%= number_to_phone(ma.manager_phone) %></option>
<% end %>
<% end %>
</select>
私のコントローラは、このようになります..:
ドロップダウンビュー:
はここで、部分的、ドロップダウンリストのための私のコードです。
report_list.html.erb
....
<tbody>
<% if @selected_manager_approval.reportapprovals.blank? %>
<tr>
<td width="100%">No reports available</td>
</tr>
<% else %>
<% @selected_manager_approval.reportapprovals.each do |ra| %>
<% if ra.report.present? %>
<tr>
<td width="25%"><%= ra.tenant_last_name.truncate(17) %></td>
<td width="25%"><%= number_to_phone(ra.tenant_phone) %></td>
<td width="25%"><%= ra.date_approved %></td>
<td width="25%"><%= link_to "View Report", {:controller => "admins/reports", :action => "show", :id => ra.report_id}, :method => :get, class: "btn-default btn-sm" %></td>
</tr>
<% end %>
<% end %>
<% end %>
</tbody>
私のjsファイルは...
$(chooseManager() {
$('#adminDropDown')change(chooseManager() {
value = $(this).val()
$.post("admins/reportapprovals/manager_select", {manager_id: value}, chooseManager(data));
})
})
UPDATE-これは、ファイルがどのように私は、ドロップダウンメニューの中の選択肢の一つとリフレッシュ第二部分を選択します
SyntaxError: [stdin]:6:5: unexpected (
私は、このエラーを与えるJS?今すぐ選択された値は、インスタンスIDを "@selected_manager_approval"として2番目の部分に渡し、ページの2番目の部分だけを自動的にリフレッシュする必要がありますか?私はこれをどのようにするべきですか?お使いのコントローラで
ドロップダウンの値に? – Prity
はい、まさに私がやろうとしていることです。私が読んでいるものに基づいて、Ajaxを使う必要があるのは、ドロップダウンが選択された後にデータベースを呼び出すからです。 – SupremeA