new.html.erb ページに次のコードがあります。
<h3>Create Make Payment </h3>
<%= simple_form_for(@payment) do |f| %> <%= f.error_notification %> <div class="form-inputs">
<%= f.input :email, collection:@arr,:required=>true,:id=>"payment_email" ,:class=>"chosen-select"%> </div> <div class="form-inputs">
<%= f.hidden_field :user_id,:value=>User.find_by_email(ar).id,:id=>"user_id" %> </div> <div class="form-inputs">
<%= f.input :amount,:required=>true%> </div>
<div class="form-inputs">
<%= f.input :desc, as: :text ,:required=>true%> </div>
<div class="form-actions">
<%= f.button :submit %> </div> <% end %>
payment_email 選択ボックスの変更時に、Ajax リクエストを実行したいと考えています。私は次のことをしました。
respond_to do |format| format.js
支払いコントローラーの作成アクションに追加されました。jsファイルに以下を書きました。
jQuery.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} }) jQuery.fn.submitWithAjax = function() { this.onChange(function() { $.post(this.action, $(this).serialize(), null, "script"); return false; }) return this; }; $(document).ready(function() { $("#payment_email").submitWithAjax(); })
create.js.erb というファイルを作成し、その中に次のように入力しました。
$("#user_id").value("<%= escape_javascript(render(:partial => user_id)) %>");
部分的な _user_id.html.erb を作成して、変更する値を出力しました。
今、私が行き詰まっているのは、payment_email の値を ajax 経由で create.js.erb に送信する方法がわかりません。この値を使用して、必要なユーザー ID を取得します。これどうやってするの?