在下拉列表中获取与选定选项的关联PHP CART

时间:2016-09-23 14:17:43

标签: php jquery mysql

当我在库中选择产品时,它会转到我的购物车。 我得到了我的产品ID并将它们存储在会话中。 在我的购物车中,我必须选择尺码和我要订购产品的面料。 我的产品是垫子。 我的cart.php具有使购物车会话有效的所有功能, 并且所有按钮都有功能。 我在我的页面checkout.php中显示我选择的产品...我在该页面中调用我的购物车功能...

要选择尺寸和面料我有2个下拉菜单,尺寸下拉列表是静态html选项,我的面料从我的数据库中获取数据。

在看之前看这个图像...... i'm trying to... 如你所见,我得到了这两张桌子。 当我选择我的面料和尺寸时,我想获取面料价格表中的值。 我的购物车有一个会话,它抓住了用户状态。 如果用户处于与我相同的状态,则结构的价格将是一个成本,否则将是其他成本。(IN_state,Out_state列)。 购物车表格中的我的QNTD行数量为$value

Valor是pt-br中的成本价值。

一件坏事是我的下拉列表不保存所选的选项。 假设我选择了一种面料天鹅绒并且尺寸为50x50。 然后我点击添加或减少按钮,我的页面将刷新,所有选项都将丢失。

我所做的是使用LocalStorage存储所选选项。 它仅适用于结账时的第一行。

如何在不提交内容的情况下获取所有这些数据。 也许我可以使用更多的会话来获取所有数据并进行计算。 但是我有点失去了这一切。 我能做些什么才能让这个一起工作? 我的购物车代码..

 <?php 
 include_once '../incluedes/conn_cms.php'; 

// gets the product id from gallery and store in session and add +1


if(isset($_GET['add'])){
    $select = "SELECT * FROM gallery2 WHERE id=" . escape_string($_GET['add'])." ";
    $run_selection = mysqli_query($conn,$select);
    while($rows = mysqli_fetch_assoc($run_selection)){
    if($rows['id'] != $_SESSION['product_'.$_GET['add']]){
        $_SESSION['product_' . $_GET['add']]+=1;
        header('Location: index.php');
            }else{
                $msg = "error";
                header('Location: checkout.php');
                }
             }
}

//the plus button

if(isset($_GET['plus'])){
$_SESSION['product_'.$_GET['plus']]+=1;
if($_SESSION['product_'.$_GET['plus']] < 1){
        header('Location: checkout.php');

}else{

    header('Location: checkout.php');
    }}

 //the minus button
if(isset($_GET['remove'])){
$_SESSION['product_'.$_GET['remove']]--;
if($_SESSION['product_'.$_GET['remove']] < 1){
        header('Location: checkout.php');

}else{

    header('Location: checkout.php');
    }

}

  //the remove button

if(isset($_GET['delete'])){
    $_SESSION['product_'.$_GET['delete']] = '0';
    header('Location: checkout.php');
}

function cart(){
    global $conn;


    $fabric_options = '';
    $query2 = "SELECT * FROM almofadas";
    $result = mysqli_query($conn,$query2);
    while($rows = mysqli_fetch_assoc($result)){

       $fabric_options .= "<option value=''>{$rows['tecido']}</option>";
      }

     foreach ($_SESSION as $name => $value) {
        if($value > 0){
            if(substr($name, 0, 8 ) == "product_"){
                $length = strlen($name) -8;
                $item_id = substr($name,8 , $length);

                $query = "SELECT * 
                          FROM gallery2 
                          WHERE gallery2.id =".escape_string($item_id). "";
                $run_item = mysqli_query($conn,$query);



                while($rows = mysqli_fetch_assoc($run_item)){ 
                    $vari = $rows['variante'];
                    $num = $rows['title'];
                    $id = $rows['id'];

                    $btn_add='<a class="btn btn-success" href="cart.php?plus='.$id.'"><i class="fa fa-plus fa-lg" aria-hidden="true" add_btn></i></a>';
                    $btn_remove = '<a class="btn btn-warning" href="cart.php?remove='.$id.'"><i class="fa fa-minus fa-lg" aria-hidden="true" remove_btn></i></a>';
                    $btn_delete='<a class="btn btn-default delete_btn" href="cart.php?delete='.$id.'"><i class="fa fa-times fa-lg" aria-hidden="true"></i></a>';
                    if($rows['variante'] < 1){
                        $vari="";
                    }else{
                        $vari = "-".$rows['variante'];
                    }
                    $product = '
                        <td style="width:100px; "><img src="../'.$rows['image'].'" style="width:90%;border: 1px solid black;"></td>
                        <td>'.$num.''.$vari.'</td>
                        <td style="width:15%;">
                            <select id="fabric" class="form-control selectpicker" required="" >

                            '. $fabric_options . '  

                            </select>
                        </td>

                        <td>
                            <select  id="size" class="form-control selectpicker" required style="width:80%;"  >
                                <option value="50">50x50</option>
                                <option value="45">45x45</option>

                            </select>

                         </td>
                            <td>'.$value.'</td>
                        <td>R$</td>
                        <td>sub.total</td>
                        <td> 
                         '.$btn_add.' '.$btn_remove.' '.$btn_delete.'
                        </td>
                        </tr>';
                    echo $product;
                } 
            }
        }
    }
}

checkout.php中的My LocalStorage脚本

<script >
  $(function() {
    if (localStorage.getItem('fabric')) {
        $("#fabric option").eq(localStorage.getItem('fabric')).prop('selected', true);
    }

    $("#fabric").on('change', function() {
        localStorage.setItem('fabric', $('option:selected', this).index());
    });
});

</script>

<script >
  $(function() {
    if (localStorage.getItem('size')) {
        $("#size option").eq(localStorage.getItem('size')).prop('selected', true);
    }

    $("#size").on('change', function() {
        localStorage.setItem('size', $('option:selected', this).index());
    });
});

</script>

0 个答案:

没有答案