Выберите биллинг и обновите цену в режиме реального времени без обновления страницы - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь создать страницу корзины. Есть много продуктов, которые требуют от вас выбора цикла выставления счетов, например, ежемесячно, раз в полгода, ежегодно с помощью выпадающего списка. Когда мы выбираем цикл выставления счета за товар, он автоматически обновляет цену, отображаемую на странице, без ссылки sh.

Допустим, я получаю цену товара из массива PHP, используя это.

$price['monthly'];
$price['quarterly'];
$price['semi-annually'];
$price['annually'];

Теперь, когда я получаю значение из раскрывающегося списка, я сохраняю его в $billing, чтобы сохранить его в виде цикла выставления счетов, например, ежемесячно, ежеквартально, раз в полгода и т. Д. c. Затем я использую js для отправки опции выбора, как только они выбирают раскрывающийся список, и выбранное значение раскрывающегося списка появляется в $billing.

Я использую: echo $price['$billing'];, чтобы показать цену продукта. Но все это происходит с помощью refre sh страницы.

Я дал код того, что я делаю ниже:

Здесь $price - массив, содержащий цену товара , $symbol - код валюты, $currency - валюта. В итоге я отобразил ссылку и обновил отображаемую цену.

Я пытаюсь отобразить цену продукта в соответствии с биллингом и обновить ссылку на странице без ссылки sh. Я также сталкиваюсь с проблемой, что если я использую несколько раскрывающихся списков для одной и той же вещи на моей веб-странице. Тогда работает только первый выпадающий список, а два других не работают даже после refre sh. Я написал этот код по вдохновению из многих мест, я могу ошибаться, и может быть более простой способ реализовать это. Я ищу, чтобы оптимизировать это. Пожалуйста, помогите

Возможно ли это? Если да, то как?

PHP:

 <?php
    // Set Billing variable
    if(isset($_GET['billing']) && !empty($_GET['billing']))
    {
     $_SESSION['billing'] = $_GET['billing'];

     if(isset($_SESSION['billing']) && $_SESSION['billing'] != $_GET['billing'])
     {
      echo "<script type='text/javascript'> location.reload(); </script>";
     }
    }
    // Include Billing file
    if(isset($_SESSION['billing'])){
     $billing= $_SESSION['billing'];
    }else{
     $billing='monthly';
    }

    $currency='USD';
    $symbol='$';
    ?>
    <!--Change Billing Cycle--> 
      <script>
     function changeBilling(){
      document.getElementById('form_billing').submit();
     }
     </script>

HTML:

 <form method='get' action='' id='form_billing' >
       <select name='billing' onchange='changeBilling();'>
       <option value='monthly' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'monthly'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['monthly']), 2 ); echo " "; echo $currency;?> Monthly
           </option>
       <option value='quarterly' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'quarterly'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['quarterly']), 2 ); echo " "; echo $currency;?> Quarterly
           </option>
       <option value='semiannually' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'semiannually'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['semiannually']), 2 ); echo " "; echo $currency;?> Semi-Annually
           </option>
       <option value='annually' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'annually'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['annually']), 2 ); echo " "; echo $currency;?> Annually
           </option>
       <option value='biennially' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'biennially'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['biennially']), 2 ); echo " "; echo $currency;?> Biennially
           </option>
       <option value='triennially' <?php if(isset($_SESSION['billing']) && $_SESSION['billing'] == 'triennially'){ echo "selected"; } ?> >
           <?php echo $symbol; echo round( str_replace('.00', '', $price['triennially']), 2 ); echo " "; echo $currency;?> Triennially
           </option>
      </select>
     </form>

<?phpecho $price[$billing];
echo '<br>';
?>
<a href="<?php echo 'https://example.com/index.php?currency=';echo $currency; echo '&billingcycle=';echo $billing; ?>Click here to purchase</a>

An пример изображения того, что я пытаюсь сделать:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...