Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用上一个下拉列表的结果填充下拉列表_Javascript_Jquery_Ruby_Ruby On Rails 4_Web - Fatal编程技术网

Javascript 使用上一个下拉列表的结果填充下拉列表

Javascript 使用上一个下拉列表的结果填充下拉列表,javascript,jquery,ruby,ruby-on-rails-4,web,Javascript,Jquery,Ruby,Ruby On Rails 4,Web,我有一个Rails数据库,里面有学校和专业。一旦用户选择了他的学校,我想用对应学校的专业来填充专业下拉列表。目前,我有两个工作下拉列表,但正如您所看到的,它们只选择所有值。我需要Json/Ajax/JavaScript吗?如果需要,我如何实现它 <div class="field"> <%= f.label :school_id %><br> <%= f.collection_select :school_id, School.order(:na

我有一个Rails数据库,里面有学校和专业。一旦用户选择了他的学校,我想用对应学校的专业来填充专业下拉列表。目前,我有两个工作下拉列表,但正如您所看到的,它们只选择所有值。我需要Json/Ajax/JavaScript吗?如果需要,我如何实现它

<div class="field">
  <%= f.label :school_id %><br>
  <%= f.collection_select :school_id, School.order(:name),:id,:name, include_blank: false %>
</div>
<div class="field">
  <%= f.label :major_id %><br>
  <%= f.collection_select :major_id, Major.order(:name),:id,:name, include_blank: false %>
</div>



编辑
当前的解决方案是对每个下拉选择使用异步请求。假设你有一小部分选择(假设这将帮助你成为一个美丽的人。祝你有美好的一天!干得好!在这里工作得很好:)
<!-- app/views/courses/_form.html.erb -->
<div class="field">
  <%= f.label :school_id %><br>
  <%= f.collection_select :school_id, School.order(:name),:id,:name, {include_blank: false},{:id=>'school_id_select'} %>
</div>
<div class="field">
  <%= f.label :major_id %><br>
  <%= f.collection_select :major_id, [],:id,:name, {include_blank: false},{:id=>'major_id_select'} %>
</div>
#config/routes.rb
Rails.application.routes.draw do
  #...
  get 'majors/find_majors_given_school_id'
  #...
end
#app/controllers/majors_controller.rb
#custom action for AJAX/JSON calls. Note this can be done multiple ways
def find_majors_given_school_id
   school_id = params[:school_id]#utilizes the url to extract school_id ".../find_majors_given_school_id?school_id=123123"
   puts "THIS IS MY SCHOOL ID :: #{school_id}"#view this in teminal
    
   majors = Major.search_for_school_id(school_id).as_json#query the model for the data and convert it to a hash using as_json
   puts "THESE ARE MY MAJORS IN A HASH :: #{majors}"
   respond_to do |format|
        format.json { 
            render json: majors
        } 
   end
end
#app/models/major.rb
class Major < ActiveRecord::Base
    has_many :courses, dependent: :destroy
    belongs_to :school, :foreign_key => "school_id"

    def self.search_for_school_id(id)
        where("school_id = ?",id)        
    end
    #...
end