3

私はMVCとRuby on rail環境を知っていました私はこのコードを持っています <%= select :language, :language_id, options_for_select([ "Arabic", "English"]), {:prompt => "#{t('language')}"}, {:onChange => "#{remote_function(:url => {:controller => 'ConfigurationController',:action => "change_language"} )}"} %> そして、私はこのアクションを呼び出すために選択して、変更時にページのPostBackを作成することはできません

選択したインデックスの変更後、何も起きていませんか?

4

2 に答える 2

1

これはリモート関数呼び出しであるためです。サーバーからエラーが返された場合、ブラウザのコンソールで確認できますか。

使用しているselect_tagの構文は問題ないようです。

編集:

変更イベントで何か警告しようとしましたか? この構文を参照してください

 <%= select_tag "language", options_from_collection_for_select(@collection,'value','name'), html_options = { :onChange=> "alert('');" :style=> "display:block;" } %>

を使用してコレクションを作成できます。

@collection = ["en","ab"]
@collection = @collection.map { |name, value| OpenStruct.new(:value => name, :name => name) }
于 2012-04-14T07:25:24.207 に答える
0

Rails のどのバージョンを使用していますか? remote_function は 3.1 で廃止されたようですhttp://apidock.com/rails/ActionView/Helpers/PrototypeHelper/remote_function

jQuery を使用して、変更イベントに応答します。

jQuery ->
  $("#select_id").change ->
    $.ajax(
      url: "url",
      dataType: "json",
      data: "data to send")
        .done (data) ->
          do_something_on_success()
        .fail (data) ->
          do_something_on_fail()
于 2012-04-14T09:06:07.940 に答える