Wysłanie dwóch formularzy zależnych od siebie

Witam,

mam dwa formularze

<% form_for :campaign, :url => activate_campaign_url(@chosen_campaign) do |f| %> <p><label>Nazwa</label><%= f.text_field :name %></p> <p><label>Opis </label><%= f.text_area :description%></p> <p><label>URL</label><%= f.text_field :target_url, :value=> "http://" %></p> <div class="RunACampaign"> <%= f.submit "Dalej", :class => "Button" %> </div> <% end %>

[code=“Ruby”]<% payment_service_for @chosen_campaign.id, PAYPAL_ACCOUNT,
:amount => @chosen_campaign.predicted_cost, :currency => ‘USD’,
:service => :paypal do |service|

    service.customer :first_name => "imie",
      :last_name => "nazwisko",
    service.billing_address :city => "",
      :address1 => "",       
    service.item_name "Opłata za ..."
    service.invoice 1222+rand(1000) 
    service.tax '0.00'
  
    service.notify_url url_for(:only_path => false, :action => 'notify')
    service.return_url url_for(:only_path => false, :controller => 'gdzies')
    service.cancel_return_url url_for(:only_path => false, :action => 'cos') %>                    
    <%= submit_tag 'Pay with PayPal' %>
  <% end %>[/code]

Pirerwszy robi update w bazie drugi służy do wykonania płatności za pomocą PayPala. Jak zrobić, żeby po naciśnięciu Pay with PayPal pierwsze wysłał pierwszy formularz i jak przechodzi walidjacje to żeby wysłał drugi z płatnością?

Mógłbym wysłać pierwszy formularz i w kontrolerze za pomocą “czegoś” wysłać POSTem dane do PayPala. Albo Ajaxem pierwszy i JSem zatwierdzić formularz PayPala ?

Na przykład :slight_smile:

form_remote_for - zainteresuj się dokumentacją tego helpera. Jak zwrócisz RJSa, który np. aktywuje albo jakoś uaktualni drugi formularz po walidacji pierwszego, jesteś w domu :slight_smile:

Ok, dzięki za podpowiedź. Wstępnie działa tak:

Pierwszy formularz form_remote_for, wysyła pierwszy formularz. A w RJS (jeżeli spełni odpowiednie założenia):

page << "$('paypal_form').submit()"

wysyła formularz z paypalem gdzie paypal_form jest id tego forma.

Ten RJS wydaje mi się nie elegancki, da się to ładniej zrobić?