これをビューページとして持っています
<html>
<head>
<script>
function submit_form()
{
$('#my_form').submit();
}
</script>
</head>
<body>
<div class="container">
<%= form_tag({:action => 'submit_form'}, :remote => true,:method=>:post,:id => 'my_form',:class => 'my_form_class') do %>
<%= select(:grade,:id,@distinct_grade_list,{},:onchange => "submit_form()")%>
<%= select(:period,:id,@distinct_period_list)%>
<% end %>
<br/>
<div id="farzi2" style="border: 3px solid blue;margin-top: 20px">
<%= select(:student_name,:id,{},{},{ :multiple => true, :size => 4 }) %>
</div>
</body>
</html>
最初の選択ボックスの内容を変更すると、JavaScript関数はajax経由でフォームを送信し、フォームに記載されているようにコントローラーアクションに送り返します
私が持っているコントローラーアクションで
def submit_form
puts "in submit_form action"
@hussi = "submit_form"
@student_name_list = Student.pluck(:student_name)
respond_to do |format|
format.html { redirect_to 'roles' }
format.json { head :no_content }
format.js { render :json => @student_name_list }
end
end
今私の質問は、関連するjsでこれらの@hussiおよび@student_name_listデータをどのように使用できるかです。ビューページに表示する内容を設定するerbファイル
私のsubmit_form.js.erbファイルには今まで何もありません
alert("in submit_form js");
$('.my_form_class').on('ajax:success', function()
{
alert(<%=@student_name_list%>")
})
私が望むのは、アクション(submit_form)と呼ばれるajaxから渡されたこのリスト(@student_name_list)を使用して、ajaxリクエストが成功して戻ってきた後に選択オプションボックスのビューページで使用することだけです。