我正在尝试在rhodes上构建一个动态下拉列表。我的屏幕上基本上有两个下拉菜单,我使用ajax从数据库中获得第二个下拉菜单的值,这取决于在第一个下拉菜单中选择的值。我是ruby新手,不知道如何在ruby上使用ajax的语法。
JavaScript代码我使用…
$.post("/app/Settings/dropdown",
{ value:a },
function(data){
alert(data);
});
-----部分控制器代码
输入代码
def dropdown
@a = @params['value']
puts @a
if @a.eql?"Auto"
mystring="auto1|auto2|"
else
mystring="personal1|personal2|"
end
end
我可以得到任何参数通过ajax调用发送到控制器..我的问题是如何发送回数据从控制器到函数在ajax调用,以便我可以使用该信息来创建一个动态下拉表..我想发送这个mystring函数(数据)?
在Rhodes中,控制器动作只能呈现其他动作或返回由部分组成的字符串。因此,为了使用AJAX填充下拉菜单,您必须呈现与将作为AJAX调用响应返回的操作相关联的视图。
控制器'下拉'动作:-
def dropdown
@a = @params['value']
if @a.eql?"Auto"
@optionList[:auto1]="auto1"
@optionList[:auto2]="auto2"
else
@optionList[:personal1]="personal1"
@optionList[:personal2]="personal2"
end
render :action => "dropdown"
end
下拉。erb的观点:-
<% optionList.each do |key, value| %>
<option value="<%= key %>"><%= value %></option>
<% end %>
AJAX调用: -
$.post(
"/app/Settings/dropdown",
{ value:a },
function(data){
data = data.replace("<div>","");
data = data.replace("</div>","");
alert(data);
}
});
确保在AJAX响应中替换了div标签,因为Rhodes会自动用div标签包围AJAX响应。