为了账号安全,请及时绑定邮箱和手机立即绑定

每日、每周、每月套餐的价格选项

每日、每周、每月套餐的价格选项

PHP
交互式爱情 2022-01-14 16:52:52
我正在为我工作的公司创建用于食品配送的电子商务网站。这不是简单的电子商务网站,我正在使用PHP OOP. 它就像包,充满了可定制的,而不是固定的。这是图表: Food Plan 1是我们在管理面板中创建的包名称,每周、每天、每月是可自定义的选项,您可以看到每个选项的价格都有不同的价格。这就是这个概念。 现在,当用户单击按钮时,将出现问题表单,这是表单: 我希望我的价格(我已存储在数据库中)仅在用户单击并在下方单击午餐/早餐/晚餐时才会出现,然后是价格只为choose packagedailylunch/breakfast/dinnerdaily选项。与单击 和weekly相同monthly。这是数据库截图: 这里,是 for ,是 for和是 for 。这是我的代码:ddailywweeklymmonthly<?php    $getPlanById = $plan->getPlanById($proId);    if($getPlanById){        $result = $getPlanById->fetch_assoc();            $m_breakfast_price = $result['m_breakfast_price'];            $m_lunch_price = $result['m_lunch_price'];            $m_dinner_price = $result['m_dinner_price'];            $w_breakfast_price = $result['w_breakfast_price'];            $w_lunch_price = $result['w_lunch_price'];            $w_dinner_price = $result['w_dinner_price'];            $d_breakfast_pric = $result['d_breakfast_price'];            $d_lunch_price = $result['d_lunch_price'];            $d_dinner_price = $result['d_dinner_price'];?>    <div class="col-md-6 offset-md-3">        <h2 class="h2-responsive font-weight-bold mt-5 mb-0">You've choosed <span class="text-primary border-bottom border-primary"><?php echo $result['pro_name']; ?></span> package.</h2>        <label>Rs./<?php echo $result['m_breakfast_price']; ?></label>    </div><?php } ?><div class="select_package_validity">    <h5 class="h5-responsive font-weight-bold">1. Select your package validity.</h5>    <input type="radio" class="custom-control-input plan_name" id="daily" name="plan_name_selector" value="Daily">    <input type="radio" class="custom-control-input plan_name" id="weekly" name="plan_name_selector" value="Weekly">    <input type="radio" class="custom-control-input plan_name" id="monthly" name="plan_name_selector" value="Monthly">    <input type="hidden" name="plan_name" class="form-control ml-4 mt-2 w-50 selected_plan_name" /></div>那么,你能告诉我如何根据选择daily/weekly/monthly的显示价格lunch/dinner/breakfast吗?应该用 jQuery 还是 PHP 来完成? 请帮我解决这个问题。
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您需要在这里结合使用 PHP 和 Javascript。后端需要 PHP 以对象的形式从您的数据库中获取数据,如果选择了一个选项,则 Javascript 使用该对象在您的页面上显示价格。


请注意,您需要进行 ajax 调用以将您的对象从 PHP 转换为 Javascript,这可以使用现代浏览器的XHR、jQuery.ajax()或Fetch API来完成。


这是一个如何完成的示例:


var validityButtons = document.getElementsByName('validity');

var foodTimeButtons = document.getElementsByName('foodtime');

var prices = {

  breakfast: {

    daily: 120,

    weekly: 110,

    monthly: 100

  },

  lunch: {

    daily: 150,

    weekly: 130,

    monthly: 120

  },

  dinner: {

    daily: 150,

    weekly: 130,

    monthly: 120

  },

};


function calculatePrice() {

  var price = 0;

  var currentOption;

  var showPrice = document.getElementById('price');

  

  /* Iterate through radio buttons to get the checked one */

  validityButtons.forEach(function(button) {

    if (button.checked === true) {

        currentOption = button.value;

    }

  });

  

  /* Iterate through checkboxes to calculate price depending on selected options */

  foodTimeButtons.forEach(function(button) {

                if (button.checked) {

        switch(button.value) {

        case 'breakfast':

          price += prices.breakfast[currentOption];

          break;

        case 'lunch':

          price += prices.lunch[currentOption];

          break;

        case 'dinner':

          price += prices.dinner[currentOption];

          break;

        default:

          break;

      }

    }

  });

  

  /* Show price */

  showPrice.innerText = price;

}


/* Fire a function when radio button gets clicked */

validityButtons.forEach(function(button) {

        button.addEventListener('change', calculatePrice);

});


/* Fire a function when checkboxes are clicked */

foodTimeButtons.forEach(function(button) {

        button.addEventListener('change', calculatePrice);

});


/* Calculate the price based on selected options on page load */

calculatePrice();

Select your package validity:

<label>

  <input type="radio" name="validity" value="daily" checked> Daily

</label>

<label>

  <input type="radio" name="validity" value="weekly"> Weekly

</label>

<label>

  <input type="radio" name="validity" value="monthly"> Monthly

</label>

<br><br>

Select your food time:

<label>

  <input type="checkbox" name="foodtime" value="breakfast" checked> Breakfast

</label>

<label>

  <input type="checkbox" name="foodtime" value="lunch"> Lunch

</label>

<label>

  <input type="checkbox" name="foodtime" value="dinner"> Dinner

</label>

<br><br>

Your price: <strong id="price"></strong>


查看完整回答
反对 回复 2022-01-14
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信