【问题标题】:how to assign js variable to php variable without submitting the form如何在不提交表单的情况下将js变量分配给php变量
【发布时间】:2019-04-16 16:22:23
【问题描述】:

我正在尝试集成 Stripe 的结帐功能。我正在使用https://checkout.stripe.com/checkout.js
我在表单上有一个金额的输入框,我想将该输入框的值传递给 Stripe 的脚本。 <input id="amount" name="amount" type="text" class="form-control" placeholder="Enter amount" onKeyUp="calculate()" pattern="^[0-9]*$">

这是我的条纹脚本

        <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="<?php echo $stripedetails['publishable_key']; ?>"
        data-amount="1000"//<-Amount here 
        data-name="KAEM Technologies USA, Inc"
        data-email="<?php echo $email;?>"
        data-currency="<?php echo $curr_code; ?>"
        data-description="Widget"
        data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
                            data-locale="auto">
                          </script>

我尝试使用 COOKIES ,我尝试使用

将 js 函数的 var 分配给 php
  var x = document.getElementById('amount').value;
  <?php $amount = "<script>document.write(x)</script>";?>

那么如何在不提交表单的情况下将输入框的值传递给条带的脚本。 谢谢
@barmar 继承了我尝试过的代码:

 <button type="submit" id="custombutton" class="btn btn-primary" ><i class="fa fa-cc-stripe"></i>&nbsp;Pay Via Card&nbsp;&nbsp;</button>
                         <script src="https://checkout.stripe.com/checkout.js"></script>
                          <script>
                            var handler = StripeCheckout.configure({
                              key: 'pk_test_DzL83GJnn9U4lMBuk311P1hK0026zJJrLW',
                              image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
                              locale: 'auto',
                              token: function(token) {
                                // You can access the token ID with `token.id`.
                                // Get the token ID to your server-side code for use.
                              }
                            });

                            document.getElementById('customButton').addEventListener('click', function(e) {
                              // Open Checkout with further options:
                              handler.open({
                                name: 'KAEM Technologies (USA), Inc.',
                                description: '2 widgets',
                                amount: 2000
                              });
                              e.preventDefault();
                            });

                            // Close Checkout on page navigation:
                            window.addEventListener('popstate', function() {
                              handler.close();
                            });
                            </script>

这样对吗?

【问题讨论】:

标签: javascript php stripe-payments


【解决方案1】:

使用here 中描述的“自定义”集成,您可以从 JavaScript 调用 Stripe 结帐方法,而不是将所有内容都放入 &lt;script&gt; 标记中。

然后您可以从表单中填写amount: 参数。

document.getElementById('customButton').addEventListener('click', function(e) {
  // Open Checkout with further options:
  handler.open({
    name: 'KAEM Technologies USA, Inc',
    description: 'Widget',
    amount: document.getElementById('amount').value,
    email: "<?php echo $email;?>"
  });
  e.preventDefault();
});

【讨论】:

  • 我试过上面的代码,但它删除了条纹按钮
  • 您是否从 HTML 中删除了 script 标签?这应该是唯一的 checkout.js 脚本。
  • 您可能必须使用自定义函数而不是脚本的参数。
  • 我在链接中使用了自定义功能,它直接将我带到另一个页面,在那里我检索信息以保存在数据库中
  • 请检查我的问题我添加了我尝试过的内容,你能看看它,是否正确?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多