将javascript变量传递到rails控制器中

Passing a javascript variable into a rails controller

本文关键字:rails 控制器 javascript 变量      更新时间:2024-06-09

我需要将一个javascript变量传递到rails控制器中。这是我的应用程序代码:

view.html.erb

<script type="text/javascript">
    var imageURL;
    var sCode = function () {
        $("#qr").html("<p align='center'><img src='https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=123&choe=UTF-8'/></p>");   
        imageURL = "https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=123&choe=UTF-8";
    }
</script>
<div class=" modal-body" id="qr"> 
</div>
<div class="modal-footer" id="footer">
    <%= form_tag({:controller => 'branches',:action => 'mailme' }, {:method => :post})  
    do %>
        <%= submit_tag  "Mail", :id => "mailme", :class => "btn btn-primary pull-left" %>
    <% end %>
</div>

这里,我需要将imageURL变量从控制器branches传递到方法mailme。如何获取该变量?我尝试过用submit_tag附加那个变量,也尝试过hidden_filed_tag来获得它,但没有成功。

感谢

您必须使用javascript来操作将在表单中提交的隐藏字段标记。

形式:

<%= hidden_field_tag "image_url" %>

JS:

<script type="text/javascript">
    var imageURL;
    var sCode = function () {
        $("#qr").html("<p align='center'><img  src='https://chart.googleapis.com/chart?  
        chs=250x250&cht=qr&chl=123&choe=UTF-8'/></p>"); 
        imageURL = "https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=123&choe=UTF-8";
        $('#image_url').val(imageURL);
    }
</script>

当然,您必须以某种方式执行sCode中声明的函数。

在控制器中,只需访问params[:image_url]即可获得URL