【问题标题】:Select shipping cost based on largest size in shopping cart根据购物车中最大尺寸选择运费
【发布时间】:2013-10-18 17:10:38
【问题描述】:

好的,所以我有一个我自己构建的购物车,允许客户将图片添加到购物车,选择图片尺寸,然后结帐。

对于不包含大于 8x12 的图片的订单,我将收取 2.99 美元,对于带有 10x124.99 美元 /strong> 及以上。

我的尺寸是通过<select> 选择的,然后存储在一个会话中,例如:$_SESSION['shipping'][$id] 你可以看到下面的选择。

<select class="form-control" id="sizeSelector">
   <option>Select a Size</option>
   <option>4x4</option>
   <option>4x6</option>
   <option>5x7</option>
   <option>6x6</option>
   <option>8x8</option>
   <option>8x10</option>
   <option>8x12</option>
   <option>10x12</option>
   <option>12x16</option>
   <option>4x18</option>                    
</select>

我不希望将运费与 id 一起存储,因为它需要是购物车中每件商品的总计数。如果任何物品大于 8x12,则整个订单的运费需要为 4.99 美元。

我尝试在设置会话大小的脚本中执行以下操作,但无论选择何种大小,它总是会产生 2.99 美元。

if ($size <= '8x12') {
   $_SESSION['shipping'] = '2.99';
}
else {
   $_SESSION['shipping'] = '4.99';
}

上面是下面这段代码的一个sn-p:(包括sn-p)

<?php 

  session_start();

  require '../config/connect.php';

  $id = $_POST['id'];

  $_SESSION['size'][$id] = $_POST['size'];

  $category = $_SESSION['category'];

  $size = $_SESSION['size'][$id];

  $result = mysqli_query($con,"SELECT * FROM items_info WHERE type='".$size."'");

  while($row = mysqli_fetch_array($result))
  {
    $_SESSION['cost'][$id] = $row['price'];

    if ($size <= '8x12') {
        $_SESSION['shipping'] = '2.99';
    }
    else {
        $_SESSION['shipping'] = '4.99';
    }

  }

?>

所以基本上,我需要了解如何运行所有为大小设置的会话,如果有任何大于 8x12 的会话,请将运输会话设置为 4.99 美元。否则将运费设置为 ​​2.99 美元。

任何帮助将不胜感激!

【问题讨论】:

  • 您是否尝试过将订单中的所有尺寸放入一个数组中,然后使用 MAX() 函数找到最大的?例如 $max = max($size);然后你可以做你 if else 声明
  • 不,我没有你能把它变成答案吗?

标签: php session


【解决方案1】:

您需要首先为每个选项分配一个值,然后将这些值放入订单数组中。然后您可以找到该值的 MAX $max = MAX($size); if ($max <=7) { $_SESSION['shipping'] = '2.99'; } else { $_SESSION['shipping'] = '4.99'; } 这只是概念,您需要计算出的确切代码。我继续假设 $size 将是顺序中所有大小的数组名称。

【讨论】:

    【解决方案2】:

    改变这个:

    <select class="form-control" id="sizeSelector">
    <option>Select a Size</option>
    <option>4x4</option>
    <option>4x6</option>
    <option>5x7</option>
    <option>6x6</option>
    <option>8x8</option>
    <option>8x10</option>
    <option>8x12</option>
    <option>10x12</option>
    <option>12x16</option>
    <option>4x18</option>                    
    </select>
    

    到这里:

    <select class="form-control" id="sizeSelector" name="size">
    <option>Select a Size</option>
    <option>4x4</option>
    <option>4x6</option>
    <option>5x7</option>
    <option>6x6</option>
    <option>8x8</option>
    <option>8x10</option>
    <option>8x12</option>
    <option>10x12</option>
    <option>12x16</option>
    <option>4x18</option>                    
    </select>
    

    并检查您的表格:

    <form method="post">
    

    【讨论】:

      【解决方案3】:

      如果您为每个选项设置一个整数值,然后将它们与 或 = 进行比较

         <option value="0">Select a Size</option>
         <option value="1">4x4</option>
         <option value="2">4x6</option>
         <option value="3">5x7</option>
         <option value="4">6x6</option>
         <option value="5">8x8</option>
         <option value="6">8x10</option>
         <option value="7">8x12</option>
         <option value="8">10x12</option>
         <option value="9">12x16</option>
         <option value="19">4x18</option>   
      

      【讨论】:

        猜你喜欢
        • 2020-01-17
        • 2010-11-26
        • 1970-01-01
        • 2020-03-25
        • 1970-01-01
        • 1970-01-01
        • 2012-08-26
        • 1970-01-01
        • 2017-12-11
        相关资源
        最近更新 更多