1

我在视图中有一个使用 js 的下拉列表我将所选项目从下拉列表传递到控制器,在控制器内部我使用下拉列表中的所选项目运行查询以提取一些记录。现在的问题是我无法显示要查看的查询结果。基本上我无法触发控制器显示在视图中。非常感谢任何帮助。

这是将数据传递给控制器​​的js:

<script type="text/JavaScript">
$(function(){
    $('.defined_call').bind('change', function(){
        alert($(this).val());
        $.ajax({
            url: "<%= changeowner_path %>",
            data: { my_str: $(this).val() }
        });
    });
});
</script>

<%= select_tag "dropdown_cases", options_for_select(@ownerlist),{:id=>"defined_Id",:class 
=> "defined_call'}  %>

这是控制器:

class ReassignsController < ApplicationController
  def changeowner
    i=0
    $myarr=[]
    ownerl = Transaction.owner#declaredin model
    @ownerlist=ownerl.collect { |c| [ c, c ] }#make it for dropdown
    value=params[:my_str]#return value from dropdown
    $value1=value.to_s#make it for owner table
    @owner_records=Transaction.where(:owner => $value1) 

    ===> I would like to display to the view?
  end
end

这是我正在使用的视图:

<table class="table table-condensed" id="sortTableExample">
<tr>
<th style="text-align:center">Book Name</th>
<th style="text-align:center">Owner</th>

</tr>

<% @owner_records.each do |arr_data| %>
<tr>
<td style="text-align:center"><%= arr_data.book%></td>
<td style="text-align:center"><%= arr_data.owner%></td>
</tr>
<% end %>
</table>
4

2 回答 2

1

乔,尝试类似:

  $('.defined_call').change(function() {
        $.ajax({
            url: "<%= changeowner_path %>", type: 'get', 
            data: { my_str: $(this).val() },
            dataType: 'json',
            processData: false,
            success: function(data) {
              if (data == "") {
                alert('No Results');
              }
              else {
                var jsonObj = eval( data );
                var count = jsonObj.transactions.length;
                for (var i = 0; i<count; i=i+1) {
                  $('#sortTableExample').append('<td style="text-align:center">' + jsonObj.transactions[i].book + '</td><td style="text-align:center">' + jsonObj.transactions[i].owner + '</td>');
                }
              }
            }
        });
  });
于 2012-10-26T23:05:05.253 回答
0

Rails 正在呈现您的视图,您只是在客户端(在 javascript 中)没有对它做任何事情。

在您的 ajax 调用中,您想对成功做一些事情:

$.ajax({
   url: "<%= changeowner_path %>",
   data: { my_str: $(this).val() },
   success: function(data) {
       $('#myDiv').html(data); // This is writing the returned view from rails to myDiv
   }
});
于 2012-10-26T23:02:43.057 回答