为 php 会话中的每个 id 设置大小


Setting a size for each id in a php session

好的,我已经为此斗争了很长时间,这真的很烦人。所以我需要一些帮助。

我有一个下拉菜单,允许用户为他们购买的图片选择尺寸。此值需要保存在 php 会话中并分配给该特定图片,允许用户在每张图片上选择多张不同大小的图片。

当用户选择大小时,我正在通过 ajax 提交下拉列表:

<script type="text/javascript">
    $('#sizeConfirm').click(function() {
        var size = $("#sizeSelector option:selected").val(); 
        var id = $("#idInput").val();
        $("#sizeId"+id).html(size);
        var dataString = 'size='+ size + '&id='+id;
        $.ajax({
            type:"POST", 
            url: "../functions/size-functions.php",
            data: dataString,
            success: function() {
            }
        })
    })
</script>

这将提交到以下脚本:

<?php 
   session_start();
   $id = $_POST['id'];
   $_SESSION['size'][$id] = $_POST['size'];
?>

我已经使用了上面代码中的设置将图片添加到购物车中。我放置了:<?php echo $_SESSION['size']; ?>在同一页面上放置了java脚本,因此我收到了:Array

我做错了什么?有人可以帮助我吗?

基本上,我希望能够执行以下操作:

User selects Category  -- This works 
  User selects Picture -- This works  
    User select size on cart page -- This is what the question is about. 

如果它有帮助,选择选项如下所示:

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

我不确定在这个问题中到底该放什么 - 所以如果你认为我错过了一些需要找到解决方案的东西,只需评论并告诉我,我会添加它。谢谢!

因为您要将会话分配为数组$_SESSION['size'][$id]

要显示结果,请尝试以下操作:

<?php
session_start();
$id = "1";//$_POST['id'];
$size="14";//$_POST['size'];
$_SESSION['size'][$id] = $size;
//print_r($_SESSION['size']);

echo $_SESSION['size'][$id];
?>

编辑:这将显示他们正在查看的每个产品的所选尺寸。