【问题标题】:Different POST Options for form, then passing data表单的不同 POST 选项,然后传递数据
【发布时间】:2012-10-31 06:33:06
【问题描述】:

目前,我正在开发一个使用 PayPal 结帐的网站。我也想启用条带,因此表单底部可以有一个“带条带结帐”按钮。

<form method="POST" id="form1" >
    <select id="udidSelect" onchange="udidPrice(this)">
        <option value="invalid" disabled="disabled">Choose Package</option>
        <option value="udid">UDID Registration</option>
        <option value="profile">UDID Registration & Free Unlimited Apps (Provisioning Profile)</option>
    </select><br />
    <br />
    <input type="text" placeholder="Name" /><br />
    <br />
    <input type="email" placeholder="Email" /><br />
    <br />

    <input type="text" placeholder="UDID (40 Characters Long)" name="os0" /> <br />
    <input type="hidden" name="on0" value="UDID">
    <br />

    <input type="hidden" name="cmd" value="_s-xclick">
    <input type="hidden" name="hosted_button_id" id="udidbuttonID" value="9PSTCESRS3FSG">
    <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" value="PayPal" onclick="submitForm('https://www.paypal.com/cgi-bin/webscr')" style="float:right;">
    <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">

</form>

现在我想在表单底部有一个 PayPal 按钮,在表单底部有一个 Stripe 按钮。如果用户点击了条纹按钮,它会将他们带到下一页并传递在此页面中输入的信息。我不知道如何做到这一点,我也不确定如何为表单设置不同的帖子选项。 (对不起,我对此有点陌生。)

在条带结帐页面上,我将如何从以前的表单中请求传递的信息。会是这样吗?

<input type="hidden" name="somedata" value="<?php echo $_POST['somedata']; ?>" />
<input type="hidden" name="otherdata" value="<?php echo $_POST['otherdata']; ?>" />

【问题讨论】:

    标签: php html paypal stripe-payments


    【解决方案1】:

    添加另一行为:

    test.php 是您要发布此表单的页面

    <input type="button"  border="0"   value="Pay with Stripe" onclick="submitForm('test.php')">
    
    in test.php you can get the values like this:
    
    <input type="hidden" name="test" value="<?php echo $_REQUEST['test'] ?>">
    

    【讨论】:

      【解决方案2】:

      如果我正确阅读了您的问题,您希望表单根据用户点击的是 Stripe 还是 Paypal 转到不同的页面。

      您可以使用 JavaScript/jQuery 更改表单的action 属性:

      <!--HTML-->
      <button onClick="setFormAction('stripe')">Stripe</button>
      <button onClick="setFormAction('paypal')">Paypal</button>
      
      //Javascript
      function setFormAction(which) {
          if (which == 'stripe') {
              //Change 'stripe.php' to the proper URL
              document.getElementById('form1').action = 'stripe.php';
          } else {
              document.getElementById('form1').action = 'paypal.php'; //Change this also
          }
          //Finally, submit the form
          document.getElementById('form1').submit();
      }
      

      或者,更容易理解的是 jQuery 解决方案:

      <!--HTML-->
      <button id="stripe">Stripe</button>
      <button id="paypal">Paypal</button>
      
      //Javascript
      $('button#stripe').click(function() {
          $('form#form1')
              .attr('action', 'stripe.php') //Change to proper stripe URL
              .submit();
      });
      $('button#paypal').click(function() {
          $('form#form1')
              .attr('action', 'paypal.php') //Change to paypal URL
              .submit();
      });
      

      在下一页,你完全按照你之前所说的去做:

      <input type="hidden" name="somedata" val="<?php echo $somedata; ?>" />
      

      始终在页面上回显用户输入的值之前对其进行清理(因此变量$somedata 而不是$_POST['somedata']

      隐藏输入字段的替代方法是会话。一旦掌握了窍门,就会更容易处理。

      【讨论】:

        猜你喜欢
        • 2012-11-02
        • 2016-02-15
        • 1970-01-01
        • 2023-03-12
        • 2018-07-07
        • 2019-09-26
        • 2013-09-07
        • 2017-05-05
        • 1970-01-01
        相关资源
        最近更新 更多