根据购物车中的最大尺寸选择运费

时间:2013-10-18 17:10:38

标签: php session

好的,所以我有一个自制的购物车,允许客户将图片添加到购物车,选择图片的大小,然后结帐。

对于图片 10x12 <的订单,对于不包含大于 8x12 $ 4.99 的图片的订单,我将收取 $ 2.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';
}

以上是以下代码中的代码段:(包含代码段)

<?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美元。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

改变这个:

<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">

答案 1 :(得分:0)

如果您为每个选项设置一个整数值并将其与&lt;,&gt;进行比较,该怎么办?或=

   <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>   

答案 2 :(得分:0)

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