0

Hi,

Been looking for a way to get value of items within a handler object. From the below i would need to call the value of the image with console.log(this.image);. I doubt that is the way to do it. but I cannot find something that can point me in the right direction. Everthing i try comes up and undefined on 6th line.

<script>
        var handler = StripeCheckout.configure({
          key: "pk_test_6pRNASCoBOKtIshFeQd4XMUh",
          image: "images/admin_imgs/podcastpilot.jpg",
          token: function(token) {
            console.log(this.image);
            var stripeToken = token.id;
            var stripeEmail = token.email;
            $.post(
                "/stripe.php", /* your route here */
                { stripeToken: token.id, stripeEmail: stripeEmail },
                function(data) {
                  console.log(data);
                }
            );
          }
        });
        $("body").on("click", "button#customForm", function(e) {
            // Open Checkout with further options
            handler.open({
              name: $(this).attr("data-name"),
              description: $(this).attr("data-desc")+\' ($\'+$(this).attr("data-price")/100+\')\',
              amount: parseInt($(this).attr("data-price"))
            });
            e.preventDefault();
          });
      </script> 
2
Contributors
2
Replies
21
Views
6 Months
Discussion Span
Last Post by itisnot_me
1

Yeah, this.image wouldn't work. This has no context. You're just defining a variable. Why not attach an ID to the image and then retrieve the object via jQuery?

0

All the other things like name, amount, desc, are generated through the on click function. I need to gather those to send to the $.post so I can process them with php. I was trying to play with the image value so i can see how it works but I really need those items.

I guess the best route is to create an object and add to it like the below. What do you think?

<script>
        var objvalues = {};
        var handler = StripeCheckout.configure({
          key: "pk_test_6pRNASCoBOKtIshFeQd4XMUh",
          image: "images/admin_imgs/podcastpilot.jpg",
          token: function(token) {
            objvalues["stripeToken"] = token.id;
            objvalues["stripeEmail"] = token.email;
            $.post(
                "/stripe.php", /* your route here */
                objvalues,
                function(data) {
                  console.log(data);
                }
            );
            console.log(objvalues.name);
            objvalues = {};
          }
        });
        $("body").on("click", "button#customForm", function(e) {
            // Open Checkout with further options
            objvalues["name"]=$(this).attr("data-name");
            objvalues["description"] = $(this).attr("data-desc")+\' ($\'+$(this).attr("data-price")/100+\')\';
            objvalues["amount"] = parseInt($(this).attr("data-price"));
            handler.open({
              name: objvalues.name,
              description: objvalues.description,
              amount: objvalues.amount
            });
            e.preventDefault();
          });
      </script>

I only thought about this direction after sleeping. sleep does wonders

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.