当前位置: 首页 > 面试题库 >

根据Rails 3中另一个collection_select的选定项目自动填充text_fields

白浩气
2023-03-14
问题内容

大家好

我试图解决这个问题,但是我仍然做不到。

我有一个Rails
3应用程序,正在处理发票和付款。在付款表格中,我有一个collection_select,其中显示了所有发票编号(从postgres数据库中提取),而我要执行的操作是选择一个发票时,自动填充其他text_fields(提供者,地址等)而没有以相同的形式重新加载页面。

我知道我应该使用Ajax,js,jquery,但是我是这些语言的初学者,所以我不知道如何或从哪里开始

希望你能帮助我…谢谢


问题答案:

您要做的是将ajax调用路由到控制器,该控制器将使用包含信息的json进行响应。然后,您将使用jquery填充不同的字段。

在您的路线中:

get "invoice/:id/get_json", :controller=>"invoice", :action=>"get_json"

在您的invoice_controller中:

def get_json
  invoice = Invoice.find(params[:invoice_id])
  render :text => invoice.to_json
end

在您的帐单模型中(如果默认的to_json方法不足够):

def to_json
  json = "{"
  json += "id:'#{self.id}'"
  json += ",date_created:'#{self.date}'"
  ...      //add other data  you want to have here later
  json += "}"
end

在您的JavaScript文件中,

$("#invoice_selecter").change(function(){  //calls this function when the selected value changes
  $.get("/invoice/"+$(this).val()+"/get_json",function(data, status, xhr){  //does ajax call to the invoice route we set up above
    data = eval(data);  //turn the response text into a javascript object
    $("#field_1").val(data.date_created);  //sets the value of the fields to the data returned
    ...
  });
});

您可能会遇到一些问题,如果您不在google chrome上,我强烈建议下载并安装fire
bug。如果是,请确保使用的是开发工具。我相信您可以通过右键单击并单击检查元素来打开它们。通过这种方式,您应该能够监视ajax请求,它是否成功以及其他情况。



 类似资料:
  • 问题内容: 我正在建立一个网站来学习编码,并且正在尝试建立一个工具,用户单击一个选择/下拉列表,其中包含从数据库 cat 提取的某些类别名称,然后另一个选择与从数据库 subcat 提取的子类别名称一起出现。这几乎与Yelp的(向下分类)完全一样,就像Yelp的(向下分类)一样。 我还做了一个图: 我已经有一个从 cat 数据库中提取的类别下拉列表: 我有一个从subcat数据库中提取的subca

  • 问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {

  • 我在屏幕顶部有一个包含标题的水平recycle view(类别recycle view ),在它下面有另一个包含标题的垂直recycle view(类别项目)和包含每个标题项目的子recycle view。 我需要根据垂直回收视图(分类项目)中最后显示的标题,使水平回收视图(类别回收视图)滚动到特定标题。

  • 以下是文件: 我试图了解的是,如果设置了环境变量(并且不是空的),那么属性应该是,否则。 上面的代码不起作用(设置的代码行),我还尝试了#{}和${}的不同组合,包括包装,但到目前为止还没有成功。 正确的做法是什么?谢了。

  • 我想创建一些表格与自动填充价格在输入框,但我不知道如何实现到我的代码。首先我有选择选项,然后选择选项后,输入框上的价格会自动生成,然后我输入折扣值,然后总价格会自动生成(基本价格-折扣%)。这是我的代码: null null

  • 问题内容: 我的问题如下:我有几个文件,并创建了一个带有名称的下拉菜单,接下来我需要的是一个选项菜单,只要选择文件名以显示特定文件中的某些数据,就可以更改该菜单。需要明确的是,我的问题只是关于从下拉菜单中选择一个选项时如何更改选项菜单。感谢您的帮助。 问题答案: OptionMenu小部件不过是一个便利类,它创建与菜单关联的菜单按钮。您可以通过属性进入此菜单。唯一的技巧是知道菜单项应该做什么,这无