首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ajax调用的Ruby on Rhodes

使用ajax调用的Ruby on Rhodes
EN

Stack Overflow用户
提问于 2013-01-08 13:35:23
回答 1查看 203关注 0票数 0

我试图在rhodes.There上用ruby构建一个动态下拉列表,我的屏幕上基本上有两个下拉列表,我正在使用ajax从数据库中获取第二个下拉列表的值,这取决于在第一个下拉列表中选择的值。我是ruby的新手,不知道如何在ruby on rhodes中使用ajax的语法。

我正在使用的JavaScript代码...

代码语言:javascript
运行
复制
$.post("/app/Settings/dropdown", 
 { value:a }, 
 function(data){ 
alert(data);

});

-部分控制器代码

在此处输入代码

代码语言:javascript
运行
复制
def dropdown

 @a = @params['value']
  puts @a
 if @a.eql?"Auto"
   mystring="auto1|auto2|"
  else
   mystring="personal1|personal2|"
  end
end

我可以获得通过ajax调用发送到controller..My的任何参数,问题是如何将数据从控制器发送回ajax调用中的函数,以便我可以使用该信息创建动态下拉列表。我想将此mystring发送给函数(数据)??

EN

回答 1

Stack Overflow用户

发布于 2015-06-03 18:05:30

在Rhodes中,控制器操作只能呈现其他操作或返回由部分参数组成的字符串。因此,为了使用AJAX填充dropdown,您必须呈现与将作为AJAX调用的响应返回的操作相关联的视图。

控制器'dropdown‘操作:-

代码语言:javascript
运行
复制
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

'dropdown.erb‘视图:

代码语言:javascript
运行
复制
<% optionList.each do |key, value| %>
    <option value="<%= key %>"><%= value %></option>
<% end %>

AJAX调用:

代码语言:javascript
运行
复制
$.post(
    "/app/Settings/dropdown", 
    { value:a },
    function(data){
        data = data.replace("<div>","");
        data = data.replace("</div>","");
        alert(data);
    }
});

一定要替换AJAX响应中的div标记,因为Rhodes会自动用div标记包围AJAX响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14208807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档