JQuery AJAX - где jQuery получает и использует возвращенные данные - PullRequest
0 голосов
/ 28 июля 2011

Rails 2.3.5

В Protype у меня была функция, которая вызывалась, когда идентификатор сотрудника вводился в форму.Функция будет выполнять вызов AJAX, а затем заполнять данные сотрудника в форме (номер, местоположение, должность, менеджер и т. Д.).Я пытаюсь узнать, как сделать то же самое с jQuery.

ПОЛЕ РАБОТНИКА НА ФОРМЕ

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

СТАРЫЙ ВЫХОД КОНТРОЛЛЕРА ПРОТОТИПА:

 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, а затем в функции, которая у меня была, она возвращает false, если не было правильного количества символов (7) или если формат был неправильным (не 2 буквы + 5 цифр).

Если есть хороший пример или учебник о том, как сделать то же самое с jQuery и Rails, я бы хотел это увидеть.Или, хэдз-ап о том, что именно я должен читать, будет приветствоваться.Я использовал jQuery AJAX, чтобы заменить html частями и загрузить модальности пользовательского интерфейса представлениями или частями, но я еще ничего не сделал, где мне нужно было запрашивать данные с помощью jQuery, а затем использовать jQuery для использования данных самостоятельно.В этом случае мне нужно отправить объект модели Rails в jQuery, где jQuery может прочитать массив возвращаемых данных и правильно заполнить соответствующие поля формы.Спасибо!

1 Ответ

1 голос
/ 28 июля 2011

Вам понадобится пользовательский метод в вашем контроллере, например:

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 %>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...