我想要做什么 -
我正在尝试创建一个页面,在其中您有一个客户列表,您选择一个,然后 Ajax 加载其信息的数据表。
我在做什么——我
从小处着手,对我的客户选择进行散列,并试图让 Ajax 发挥相关作用。
代码:
<% select_list = []
@clients.each do |f|
select_list << f.name
end
%>
<%= select_tag 'client', options_for_select(select_list) %>
<%= submit_tag 'Show', :id => "show" %><br/>
<div id="load-zone" style="width:500; height:300;">
</div>
<script type="text/javascript">
$.ajaxSetup ({
cache: false
});
var ajax_load = "<img class='loading' src='/images/load.gif' alt='loading...' width='40px' />";
// load() functions
var selID=document.getElementById("client");
var loadUrl=selID.options[selID.selectedIndex].text;
$("#show").click(function(){
alert(loadUrl);
$("#load-zone")
.html(ajax_load)
.load("/reports/ref_table_template?client=", loadUrl, "#data_table");
});
</script>
我也试过把它放在后面的两条 'var' 行// load() functions
:
var loadUrl = $("#client option:selected").text();
和:
var loadUrl = $("#client").val();
我所期望
的 - 实际加载的页面是另一个问题,但是在那里有警报,我应该看到一个消息窗口弹出,其中包含我从下拉列表中选择的客户端的名称。IE,如果下拉列表包含 ["Steve", "Jim", "Pete"] 那么当我选择 "Pete" 并单击按钮时,我应该会看到一个消息框也显示 "Pete"。
我得到了什么
——每次我点击提交按钮,无论我尝试什么方法,我都会得到“Steve”(第一个选项)。
如何更改它以便loadUrl
实际包含所选项目?
系统规格 -
使用 Ubuntu 12.04 LTS 64 位
Ruby 1.8.7
Rails 3.0.20
浏览器 -
谷歌浏览器