Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 如何在where子句rails 4中传递js变量 $(文档).ready(函数(){ $(“选择#子部分_部分_id”)。更改(函数(){ var id_value_string=$(this.val(); **$(“#sub_section_div').html('1),:id,:name)%>”);** }); });_Javascript_Jquery_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Javascript 如何在where子句rails 4中传递js变量 $(文档).ready(函数(){ $(“选择#子部分_部分_id”)。更改(函数(){ var id_value_string=$(this.val(); **$(“#sub_section_div').html('1),:id,:name)%>”);** }); });

Javascript 如何在where子句rails 4中传递js变量 $(文档).ready(函数(){ $(“选择#子部分_部分_id”)。更改(函数(){ var id_value_string=$(this.val(); **$(“#sub_section_div').html('1),:id,:name)%>”);** }); });,javascript,jquery,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,在查看页面中,我有两个下拉列表部分和子部分。当我选择任何部分时,我希望填充其各自的子部分。但问题是我想将id\u value\u string传递到where子句中的部分\u id。请帮助我。谢谢。它不会像这样工作,加载页面后不能将JS传递给Ruby。我认为您最好使用AJAX: <div class="field"> <%= f.label :section_id %> <%= f.select :section_id,options_fr

在查看页面中,我有两个下拉列表
部分
子部分
。当我选择任何部分时,我希望填充其各自的子部分。但问题是我想将
id\u value\u string
传递到where子句中的
部分\u id
。请帮助我。谢谢。

它不会像这样工作,加载页面后不能将JS传递给Ruby。我认为您最好使用AJAX:

<div class="field">
    <%= f.label :section_id %>     
    <%= f.select :section_id,options_from_collection_for_select(Section.all, :id, :name )%>
</div>


<div class="field">
     <%= f.label :sub_section_id %>
     <div id="sub_section_div"></div>
</div>

<div class="actions"> 
     <%= f.submit %>
</div>

<script type="text/javascript">
$(document).ready(function(){

     $("select#sub_section_section_id").change(function(){
          var id_value_string = $(this).val();
          **$('#sub_section_div').html('<%= j f.select :name,options_from_collection_for_select(SubSection.where(:section_id=>1), :id, :name )%>');**          
     });
});
</script>

<% end %>
$(文档).ready(函数(){
$(“选择#子部分_部分_id”)。更改(函数(){
var id_value_string=$(this.val();
$.ajax({
url:“”,
数据:{
节\u id:id\u值\u字符串
}
});     
});
您需要为此创建一个新的控制器/操作,然后在关联的.js视图文件中,您可以执行类似于通过AJAX传递变量的命令:

$(document).ready(function(){
    $("select#sub_section_section_id").change(function(){
       var id_value_string = $(this).val();

       $.ajax({
           url: "<%= sub_sections_path %>",
           data: {
               section_id: id_value_string
           }
       });     
});
$('#sub_section_div').html('params[:section_id),:id,:name)%>');

使用4个空格缩进代码,读起来真是一场噩梦,为什么不在js.erb文件中也这样做呢……这样你就可以在js代码中自由使用ruby了……试一下,你需要记住,rails和javascript在完全不同的环境中运行,永远不会交互。rails在服务器上运行,生成一个文本文件,然后发送给用户切换到浏览器。此文本文件可以包含html、javascript等。浏览器然后加载此文本文件,显示html并运行javascript。因此,rails和javascript之间的所有交互都是通过A)rails呈现一些javascript以在页面加载时运行,或B)javascript向服务器(即rails)发送请求并执行以下操作来完成的有回复的东西。非常感谢@RichardAE。
$('#sub_section_div').html('<%= j f.select :name,options_from_collection_for_select(SubSection.where(:section_id=>params[:section_id), :id, :name )%>');