2015-05-21 3 views
2

Я читал, как использовать формы PayPal. Я создал форму для использования параметров, но я хочу иметь возможность переключаться между двумя выпадающими списками в зависимости от того, выбирают ли они вариант A или вариант B ...PayPal: Переключение между несколькими блоками настроек?

(Единственный вопрос, который я нашел, который удаленно закрыт, - 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="[email protected]"> 
    <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> 

идея заключается в том, что, когда кто-то выбирает Basic или Advanced:

<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 немного больше, поэтому я понимаю ... Когда кто-то нажимает на это выпадающее окно и выбирает Basic или Advance, ему нужно вызвать сценарий jQuery, который сначала проверит чек, чтобы увидеть, что было нажато затем перебираем значения из массива и заполняем форму. Я просто не знаю, как это сделать, кто-нибудь хочет сделать это?


Ради примера, я в значительной степени пытается получить версию JS/JQuery этого псевдо-PHP код:

<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>'; 
    } 
?> 
+0

Вы пытаетесь показать кнопку оплаты для людей, которые хотят основной, а другой для тех, кто хочет передовых? Почему бы не сделать 2 страницы с одной кнопкой каждый и позволить использовать переход к соответствующим страницам после выбора. Это было бы самым простым способом. Вы проверили, имеет ли paypal этот вариант со своей стороны? Я предполагаю, что у них есть возможность разрешить пользователям выбирать из нескольких вариантов. – Kishor

+0

Нет, я хочу одну кнопку оплаты, это просто раскрывающийся список или переключатели или все, что у меня там есть, но идея в том, что, когда люди выбирают «Basic» или «Advanced», это вызывает событие jQuery и вызывает скрипт для заполнения '' и '' с соответствующими значениями – Matthew

+0

http://api.jquery.com/jquery.post/ имеет помощь в том, как это сделать! – user3633383

ответ

1

Paypal дает вам возможность иметь выбор выпадающие из продуктов с разными ценами.

  1. Войти на paypal.
  2. Перейти к профилю Выберите «My Продажа инструментов»
  3. Нажмите на обновления рядом с «Управление мои кнопки оплаты»
  4. Создать новую кнопку
  5. Tick флажок с «выпадающее меню Сложение с соотношением цена/опции '
  6. И вы получите экран, как на изображении ниже.

enter image description here

ADD: Вот 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/

+0

Спасибо, я уже закодировал это выше себя, я только что добавил дополнительный снимок. Проблема в том, что я хочу переключаться между двумя разными раскрывающимися меню, и PayPal не дает возможности сделать это. – Matthew

+0

2 разных выпадающих меню? Почему именно? – Kishor

+0

Не то, чтобы это имело значение, а потому, что у меня есть два разных пакета с двумя разными списками ценообразования. – Matthew

Смежные вопросы