4

現在、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ボタンを配置し、フォームの下部にストライプボタンを配置したいと思います。また、ユーザーがストライプボタンをクリックすると、次のページに移動し、このページに入力された情報を渡します。これを行う方法がわかりません。また、フォームにさまざまな投稿オプションを設定する方法もわかりません。(申し訳ありませんが、私はこれに少し慣れていません。)

ストライプチェックアウトページでも、前のフォームから渡された情報をどのように要求しますか。こんな感じでしょうか?

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

2 に答える 2

1

私があなたの質問を正しく読んでいるなら、ユーザーが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-11T17:33:55.137 に答える
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'] ?>">
于 2012-11-11T17:34:03.203 に答える