2011-07-27 126 views
0

Rails 2.3.5jQuery AJAX - 其中jQuery获取并使用返回的数据

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

EMPLOYEE场对FORM

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

OLD原型控制器输出:

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

FUNCTION INSERTING返回的数据INTO FORM

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)或者格式为w,则返回false作为错误(不是2个alpha + 5数字)。

如果有一个很好的例子或如何用jQuery和Rails做同样的事情的教程,我很乐意看到它。或者,提醒一下,我应该阅读的内容是值得欢迎的。我一直在使用jQuery AJAX来用partials替换html,并将UI Mods加载到视图或partials,但是我还没有做任何事情,我不得不使用jQuery请求数据,然后让jQuery使用数据itslef。在这种情况下,我需要将一个Rails模型对象发送给jQuery,其中jQuery可以读取返回的数据数组并正确填写匹配的表单字段。谢谢!

回答

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 %>');