Last active
December 28, 2019 20:29
-
-
Save staycreativedesign/8fa5fd4139ce2ae2f2cea5b51972bd15 to your computer and use it in GitHub Desktop.
How do I send the params from the form to the ajax and then to controller?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
= form_tag donations_path, id: "payment-form", remote: true do | |
%h5.uppercase.mt-5 | |
%strong Credit Card information | |
%hr | |
.row | |
.col-md-4 | |
%label | |
Card number | |
#card-number-element.field.form-control | |
.col-md-4 | |
%label | |
Expiry date | |
#card-expiry-element.field.form-control | |
.col-md-4 | |
%label | |
CVC | |
#card-cvc-element.field.form-control | |
.row.mt-3 | |
.col-md-4 | |
%label | |
Name | |
%input#name.field.form-control{:name => "name", :placeholder => "Your name", required: true} | |
.col-md-4 | |
%label | |
Phone | |
%input#phone.field.form-control{:name => "phone", :placeholder => "Contact number"} | |
.col-md-4 | |
%label | |
%input#email.field.form-control{:name => "email", :placeholder => "Your Email", required: true} | |
%h5.uppercase.mt-5 | |
%strong | |
Mailing address | |
%hr | |
.row | |
.col-sm-12 | |
%label | |
Address | |
%input#address-line1.field.form-control{:name => "address_line1", :placeholder => "Your mailing address", required: true} | |
.row | |
.col-sm-3 | |
%label | |
City | |
%input#address-city.field.form-control{:name => "address_city", :placeholder => "Your City", required: true} | |
.col-sm-3 | |
%label | |
State | |
%input#address-state.field.form-control{:name => "address_state", :placeholder => "Your State", required: true} | |
.col-sm-3 | |
%label | |
Zipcode | |
%input#address-zip.field.form-control{:name => "address_zip", :placeholder => "Your Zipcode or Postal Code", required: true} | |
.col-sm-3 | |
%label | |
Country | |
%input#address-country.field.form-control{:name => "address_country", :placeholder => "Your Country"} | |
%h5.uppercase.mt-5 | |
%strong | |
Dedication | |
%hr | |
.group | |
%label | |
Dedicate this donation to | |
%input#address-line1.field.form-control{:name => "dedication", :placeholder => "Name, Family, or Event"} | |
= hidden_field_tag(:amount) | |
= hidden_field_tag(:cc) | |
= hidden_field_tag(:subscription) | |
= hidden_field_tag(:custom) | |
= hidden_field_tag(:plan) | |
= hidden_field_tag(:charge_type, "donation") | |
%button.mb-4#poker_button{:type => "submit"} Donate | |
:javascript | |
var stripe = Stripe("#{Rails.application.secrets.publishable_key}"); | |
var elements = stripe.elements(); | |
var style = { | |
base: { | |
iconColor: '#666EE8', | |
color: '#31325F', | |
fontWeight: 700, | |
fontFamily: 'Helvetica Neue', | |
fontSize: '15px', | |
'::placeholder': { | |
color: '#CFD7E0', | |
}, | |
}, | |
}; | |
var cardNumberElement = elements.create('cardNumber', { | |
style: style, | |
placeholder: 'Enter Credit Card here', | |
}); | |
cardNumberElement.mount('#card-number-element'); | |
var cardExpiryElement = elements.create('cardExpiry', { | |
style: style, | |
}); | |
cardExpiryElement.mount('#card-expiry-element'); | |
var cardCvcElement = elements.create('cardCvc', { | |
style: style, | |
}); | |
cardCvcElement.mount('#card-cvc-element'); | |
cardNumberElement.on('change', function(event) { | |
}); | |
$('#other_amount').keyup(function(){ | |
foo = $(this).data("amount") | |
bar = $(this).val(); | |
foo = bar | |
$("#amount").val(foo) | |
$("#custom").val("yes") | |
}) | |
$('.donation-button').on('click', function(){ | |
$('.donation-button').next().hide(); | |
$('.donation-button').css("background-color", '#FD7E3C').css("border-color", "#FD7E3C"); | |
$(this).next().show(); | |
$(this).css("background-color", "#293B57").css("border-color", "#293B57"); | |
}) | |
$(".donation-amount").click(function(e){ | |
e.preventDefault(); | |
da = $(this).data("amount") | |
$("#amount").val(da) | |
cs = $(this).data("plan") | |
$("#plan").val(cs) | |
$("#other_amount").val("") | |
}) | |
$("input[type=radio][name=subscription]").on('change', function() { | |
$("#subscription").val($(this).val()) | |
}) | |
var form = document.getElementById('payment-form'); | |
var amount = $("#amount").val() | |
form.addEventListener('submit', function(event) { | |
event.preventDefault(); | |
if ($('#amount').not(':empty')){ | |
$("#poker_button").attr("disabled", true); | |
$("#poker_button").html('We are processing your donation, please wait'); | |
$("#poker_button").css('background-color', '#28a745'); | |
} | |
stripe | |
.createPaymentMethod({ | |
type: 'card', | |
card: cardNumberElement, | |
billing_details: { | |
name: $('#name').val(), | |
}, | |
}) | |
.then(function(result) { | |
if(result.error) { | |
console.log(result.error) | |
} else { | |
console.log(result.paymentMethod.id) | |
console.log("winning") | |
$("#cc").val(result.paymentMethod.id) | |
Rails.ajax({ | |
url: "/donations", | |
type: "post", | |
data: "#{params}", | |
success: function(data) { | |
console.log("foo") | |
}, | |
error: function(data) {} | |
}) | |
} | |
// Handle result.error or result.paymentMethod | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Fixed
correct that will be fixed
Wouldn't I be calling it with Rails.ajax? I don't know how to make that call.
So the problem I am having now is that when I click the button stripe.createPaymentMethod runs and gets the payment method but I cant get it passed to the controller when that happens.