あなたはちょうどあなたがすでに持っているものにa bit of AJAXを追加する必要があります。
$ ->
$('#personNumber').focusout(show_message)
show_message = ->
id = encodeURIComponent($('#personNumber').val())
$.ajax
url: '/path/to/your/controller/' + id + '/name'
type: 'get'
success: (data) ->
$('#persondetails').html(data.name)
error: ->
# Do something sensible
その後、ソートのこのようなコントローラメソッドへのルート/path/to/your/controller/:id/name
たい:
def your_method
#... look up params[:id] and leave the person in `person`
if(person)
render :json => { :name => person.name }, :status => :ok
else
render :json => { :msg => 'some error message' }, :status => :not_found
end
end
あなたの場合ID以外のものに基づいて名前を検索できるようにしたい場合は、次のような柔軟性を追加することができます:
そして
$ ->
$('#personNumber').focusout(show_message)
show_message = ->
$.ajax
url: '/path/to/your/controller'
type: 'get'
data: { id: $('#personNumber').val() }
success: (data) ->
$('#persondetails').html(data.name)
error: ->
# Do something sensible
上記のように制御方法へのルート/path/to/your/controller
とparams
かもしれない他のものに基づいてperson
を見つけることができるようにyour_method
にもう少しロジックを追加します。
「読み込み中...」というメッセージも追加するとよいでしょう。 $.ajax
を呼び出す前に「読み込み中...」<div>
と表示し、$.ajax
からcomplete
コールバックに非表示にすることができます。
ありがとうございました。 – Jack