2011-07-27 50 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 %>');