【问题标题】:PayPal: Switch between multiple option boxes?PayPal:在多个选项框之间切换?
【发布时间】:2015-05-21 03:27:52
【问题描述】:

我一直在阅读有关如何使用 PayPal 表单的信息。我创建了一个表单来使用选项,但我希望能够根据他们选择选项 A 还是选项 B 在两个下拉框之间切换...

(我发现的唯一一个远程接近的问题是——Creating Multiple Select Option Box in Paypal Shopping Cart——我不明白。)

下面是一些示例代码:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" data-abide>
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="matt.roberts.33@gmail.com">
    <input type="hidden" name="bn" value="MRobertsDesign_BuyNow_WPS_CA">
    <input type='hidden' name='lc' value='CA'>
    <input type="hidden" name="currency_code" value="CAD">
    <input type="hidden" name="no_shipping" value="0">
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="return" value="http://mrobertsdesign.ca/design/payments/completed/">
    <input type="hidden" name="cancel_return" value="http://mrobertsdesign.ca/design/payments/cancelled/">
    <input type="hidden" name="item_number" value="service-plan">

    <input type="text" placeholder="What is your name?" id="pack_name" name="os1" maxlength="100">

    <select id="pack_type" name="item_name">
        <option value="">Choose a plan:</option>
        <option value="Basic">Basic - Starting at $90</option>
        <option value="Advanced">Advanced - Starting at $190</option>
    </select> 

    <!-- Options A (Basic) -->
    <select id="pack_time" name="os0">
        <option value="">Choose your hours:</option>
        <option value="2hrs">2 Hours - $90.00</option>
        <option value="3hrs">3 Hours - $180.00</option>
        <option value="4hrs">4 Hours - $228.00</option>
    </select> 
    <input type="hidden" name="option_select0" value="2hrs">
       <input type="hidden" name="option_amount0" value="90.00">
    <input type="hidden" name="option_select1" value="3hrs">
       <input type="hidden" name="option_amount1" value="180.00">
    <input type="hidden" name="option_select2" value="4hrs">
       <input type="hidden" name="option_amount2" value="228.00">

    <!-- Options B (Advanced) -->
    <select id="pack_time" name="os0">
        <option value="">Choose your hours:</option>
        <option value="2hrs">2 Hours - $190.00</option>
        <option value="3hrs">3 Hours - $240.00</option>
        <option value="4hrs">4 Hours - $328.00</option>
    </select> 
    <input type="hidden" name="option_select0" value="2hrs">
       <input type="hidden" name="option_amount0" value="190.00">
    <input type="hidden" name="option_select1" value="3hrs">
       <input type="hidden" name="option_amount1" value="240.00">
    <input type="hidden" name="option_select2" value="4hrs">
       <input type="hidden" name="option_amount2" value="328.00">

    <input type="hidden" name="on1" value="Client">
    <input type="hidden" name="on0" value="Hours">
    <input type="submit" name="submit" class="button radius payments-buy" value="Buy Now">
</form>

这个想法是当有人选择基本或高级时:

    <select id="pack_type" name="item_name">
        <option value="">Choose a plan:</option>
        <option value="Basic">Basic - Starting at $90</option>
        <option value="Advanced">Advanced - Starting at $190</option>
    </select> 

它将下拉选项分别更改为 A 或 B。

现在我不知道该怎么做,有人有什么想法吗?我不确定您是否理解我在做什么,但如果您需要更多说明,请询问我,我不确定我还能说什么。

我更了解 PHP,所以我明白了……当有人单击该下拉框并选择基本或高级时,它需要触发一个 jQuery 脚本,该脚本将首先检查单击的内容然后循环遍历数组中的值并填充表单。就是不知道怎么弄,有人想试试吗?


为了举例,我非常想获得这个 psuedo-php 代码的 JS/jQuery 版本:

<select id="pack_type" name="item_name">
    <option value="">Choose a plan:</option>
    <option value="Basic">Basic - Starting at $90</option>
    <option value="Advanced">Advanced - Starting at $190</option>
</select> 

<?php
    // I know this doesn't work but for the sake of example
    if (select.pack_type option.basic.selected) {
        var $pack_type = 'basic';
    } elseif (select.pack_type option.advanced.selected) {
        var $pack_type = 'advanced';
    } else {
        var $pack_type = NULL;
    }

    // Basic
    $plan['basic'][] = array(
        'hours' => '2 Hours', 
        'price' => '90.00',
    );
    $plan['basic'][] = array(
        'hours' => '3 Hours', 
        'price' => '120.00',
    );
    $plan['basic'][] = array(
        'hours' => '4 Hours', 
        'price' => '250.00',
    );

    // Advanced
    $plan['advanced'][] = array(
        'hours' => '2 Hours', 
        'price' => '190.00',
    );
    $plan['advanced'][] = array(
        'hours' => '3 Hours', 
        'price' => '220.00',
    );
    $plan['advanced'][] = array(
        'hours' => '4 Hours', 
        'price' => '350.00',
    );

    // Other variables
    $i = 0;

    if ($pack_type == 'basic') {
        // Echo basic
        echo '<select id="pack_time" name="os1"><option value="">Choose your hours:</option>';
            foreach ($plan['basic'] as $prices) {
                echo '<option value="' . $prices['hours'] . '">' . $prices['hours'] . ' - $' . $prices['price'] . '</option>';
            }
        echo '</select>';
        foreach ($plan['basic'] as $prices) {
            echo '<input type="hidden" name="option_select' . $i++ . '" value="' . $prices['hours'] . '"><input type="hidden" name="option_amount' . $i++ . '" value="' . $prices['price'] . '">';
        }
    } elseif ($pack_type == 'advanced') {
        // Echo advanced
        echo '<select id="pack_time" name="os1"><option value="">Choose your hours:</option>';
            foreach ($plan['advanced'] as $prices) {
                echo '<option value="' . $prices['hours'] . '">' . $prices['hours'] . ' - $' . $prices['price'] . '</option>';
            }
        echo '</select>';
        foreach ($plan['advanced'] as $prices) {
            echo '<input type="hidden" name="option_select' . $i++ . '" value="' . $prices['hours'] . '"><input type="hidden" name="option_amount' . $i++ . '" value="' . $prices['price'] . '">';
        }
    } else {
        // Echo nothing
        echo '<select id="pack_time" name="os1"><option value="">Choose your hours:</option></select>';
    }
?>

【问题讨论】:

  • 您是否想向想要基本的人显示一个付款按钮,而向想要高级的人显示另一个?为什么不制作 2 个页面,每个页面都有一个按钮,然后在选择时让使用导航到相应的页面。那将是最简单的方法。您是否检查过贝宝是否从他们那里获得此选项?我猜他们有一个选项允许用户从多个选项中进行选择。
  • 不,我想要一个支付按钮,它只是一个下拉菜单或单选按钮或我可以在那里拥有的任何东西,但想法是当人们选择 BasicAdvanced 时,它会触发一个 jQuery事件并调用脚本以使用适当的值填充 &lt;select id="pack_time" name="os0"&gt;...&lt;/select&gt;&lt;input type="hidden" name="option_selectN" value="X"&gt;&lt;input type="hidden" name="option_amountN" value="Y"&gt;
  • @Kishor 他们没有选择这样做,不幸的是我能找到任何方法......不过,这是一个好主意,只需制作 2 个完全独立的表格。我只是想看看是否真的可以这样做

标签: jquery paypal


【解决方案1】:

Paypal 让您可以选择不同价格的产品下拉菜单。

  1. 登录贝宝。
  2. 转到个人资料选择“我的销售工具”
  3. 点击“管理我的付款按钮”旁边的更新
  4. 创建一个新按钮
  5. 勾选“添加带有价格/选项的下拉菜单”复选框
  6. 您将看到如下图所示的屏幕。

添加:这是一个 jsfiddle,它可能会帮助您实现目标。一个下拉菜单,将在选择时显示和隐藏单独的按钮。

jQuery

    $('select.div-toggler').change(function(){
    var target = $(this).data('target');
    $(target).children().addClass('hide');
    var show = $("option:selected", this).data('show');
    $(show).removeClass('hide');
});

http://jsfiddle.net/TLBvx/61/

【讨论】:

  • 谢谢,我已经在自己上面编写了代码,我刚刚添加了一个额外的下拉菜单。问题是我想在两个不同的下拉菜单之间切换,而 PayPal 没有提供这样做的选项。
  • 2 个不同的下拉菜单?为什么?
  • 没关系,但因为我有两个不同的套餐,有两个不同的定价列表
  • 那么,可能会这样做是一种选择。您有 2 个包裹 A 和 B,每个包含 10 美元和 20 美元的产品。制作 2 个带有 10 美元和 20 美元下拉菜单的按钮。并在您的站点中手动创建一个下拉列表,其中包含选项 A 和 B。在下拉列表中选择 A 后,显示第一个按钮的代码,这样就可以使用 paypal 生成的下拉列表。选项 B 相同。
  • 好主意,这就是我要求帮助完成的事情。我已经在上面编码了。
猜你喜欢
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2021-09-23
  • 1970-01-01
相关资源
最近更新 更多