jQuery AJAX - jQuery获取并使用返回的数据

时间:2011-07-27 23:13:53

标签: ruby-on-rails

Rails 2.3.5

使用Protype,我有一个函数,当一个Employee ID被输入表单时被调用。该函数将进行AJAX调用,然后将Employee的详细信息填入表单(数字,位置,标题,经理等)。我正在尝试学习如何使用jQuery做同样的事情。

表格上的员工字段

<%= f.text_field :employee_id, :maxlength => 7, :onkeyup => 'employee_lookup(event)' %>

OLD PROTOTYPE CONTROLLER OUTPUT:

 employee = CorporateDirectory.find_by_employee_id(params[:employee_id])
render :text => employee.first_name+", "+employee.last_name+","+employee.desk_phone+", (etc.)

将返回的数据插入表单中的功能

var employeeData = (x.responseText.split(','));
$('employee_first_name).value = employeeData [0];
$('emplyee_last_name').value = employeeData [1];
$('employee_desk_phone').value = employeeData [2];

我使用过:onkeyup然后在我得到的函数中,如果它没有正确数量的字符(7)或者格式错误(不是2个alpha + 5个数字),则返回false。

如果有一个很好的例子或教程如何用jQuery和Rails做同样的事情,我很乐意看到它。或者,对我究竟应该阅读的具体内容进行单挑会是受欢迎的。我一直在使用jQuery AJAX用部分替换html并用视图或部分加载UI模式,但我还没有做任何事情,我必须用jQuery请求数据然后让jQuery使用数据itlef。在这种情况下,我需要将一个Rails模型对象发送到jQuery,其中jQuery可以读取返回的数据数组并正确填写匹配的表单字段。谢谢!

1 个答案:

答案 0 :(得分:1)

您需要在控制器中使用自定义方法,例如:

def search
  @employee = CorporateDirectory.find_by_employee_id(params[:employee_id])
end

然后使用this发布到搜索方法。

在您的控制器中,您希望搜索方法响应:js,默认情况下,它将呈现search.js模板。您可以使用search.js.erb并在视图中使用@employee对象。您的jQuery脚本将如此:

$('#employee_first_name').val('<%= @employee.first_name %>');