[英]ajax auto form submit with rails4
I'm using rails4.2.0 in my e-commerce site, when a user submit his payment type, I want to redirect outside website. 我在电子商务网站中使用rails4.2.0,当用户提交付款方式时,我想重定向到外部网站。 The flow is below.
流程如下。
source of 2 and 3 are like , 2和3的来源就像
create.html.erb create.html.erb
<%= form_for(:user,:url => { controller: "settlements", action: "settlement"}, remote: true, html: {class: :settlement_form}) do |f| %>
<%= f.radio_button :settlement_type, 0 %>paypal
<%= f.radio_button :settlement_type, 1 %>credit card
<%= f.hidden_field :email, :value => @user.email %>
<%= f.hidden_field :fee_type, :value => @user.fee_type %>
<%= f.submit "Submit", data: { disable_with: "Please wait..." }, class: "btn btn-warning" %>
settlement_controller 结算控制器
def settlement
user = User.new(user_params)
if user.save
# parameters for outside website
@payment_params
else
render "new"
end
end
settlement.js.erb 沉降.js.erb
var form = $('<form></form>',{id:"pay",action:'http://outside_ec_site_url/hoge',method:'POST'}).hide();
var body = $('redirect');
body.append(form);
form.append($('<input/>', {type: 'hidden', name: 'something', value: <%= @payment_params[:something] %>}));
form.append($('<input/>', {type: 'hidden', name: 'something', value: <%= @payment_params[:something] %>}))
form.submit();
I fixed this problem, but I want to know better method. 我已解决此问题,但我想知道更好的方法。
changed settlement.js.erb like, 更改了结帐.js.erb,
$("#redirect").html("<%= escape_javascript(render :partial => 'pay' ) %>");
and created new file _pay.html.erb 并创建了新文件_pay.html.erb
<script>
$('<form/>', {id: 'paygent',action: "outside_website_url", method: "POST"})
.append($('<input/>', {type: 'hidden', name: 'something1', value: "<%= @payment_params[:somthing1] %>"}))
.append($('<input/>', {type: 'hidden', name: 'something2', value: "<%= @paygent_params[:something2] %>"}))
.appendTo(document.body)
.submit();
</script>
then, it works. 然后,它起作用。 Do you know any other method?
你知道其他方法吗? Any idea is appriciated.
任何想法都适用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.