php数组存储在session中

时间:2014-01-20 04:06:51

标签: php session

仍无法解决此问题

所以这就是我想要做的事情:

在购物车中添加带有选项的产品。可以通过<input type="checkbox/>选择选项。产品根据与php的会话中的id进行存储。

现在我将糖果作为一个数组提交(如下所示)但我不确定如何将其添加到会话中的特定产品中。

我对选项的输入是这样的:

<?php foreach($options as $option): ?>
   <input type="checkbox" name="candies[]" value="<?php echo $option['candy_name']; ?>" /><?php echo $option['candy_name']; ?><br/>
<?php endforeach; ?>

我目前将产品添加到会话的代码如下:

...
case "add":
 $_SESSION['cart'][$product_id]++;
 header('location: ../../cart.html');
break;
...

我还将$candies = $_GET["candies"];放在上面的代码上方以获取选项。

如何才能使选项数组存储在每个产品的会话中?

在下图中,您可以看到我正在谈论的内容......我想在特定产品的选项列下显示每个选定的选项。

3 个答案:

答案 0 :(得分:0)

看起来你有正确的HTML结构,但你的代码是脱节的。最简单的答案是做这样的事情

$_SESSION['cart'][$product_id] = array('options' => $_POST['candies']);

然后你会做类似

的事情
foreach($_SESSION['cart'][$product_id]['options'] as $opt) {
     echo $opt;
}

答案 1 :(得分:0)

代码看起来应该是第一个html take复选框

<form action="sample.php" method="post">
<input type="checkbox" name="candies[]" value="Candy1" />
<input type="checkbox" name="candies[]" value="Candy2" />
<input type="checkbox" name="candies[]" value="Candy3" />
<input type="submit" value="Submit" />
<form>

然后会话

<?php
session_start();
$result = array();
foreach ( $_POST['candies'] as $key=>$row ) :

    $result[$key] = $row[$key];
endforeach; 

$_SESSION['candies'] = $result;

print_r($_SESSION['candies']);

?>

答案 2 :(得分:0)

这可能不是您要查找的确切代码,但这可以作为您想要实现的目标的指南。

假设您想从数据库的productOptions获取产品选项值。

$resultSet = mysql_query("SELECT * FROM productOptions");

现在,我们会根据查询结果显示表单的复选框。

while($row = mysql_fetch_assoc($resultSet)){
     echo "<input type='checkbox' name='options[]' value='{$row['optionsID']}' />";
}

在我们的表单中显示复选框后,我们从选中的复选框中获取选中的值。

if(isset($_POST['yourSubmitButtonName'])){
     $productSelected = array();
     if(!empty($_POST['options'])){
          foreach($_POST['options'] as $options){
               $optionsSelected[] = $options;
          }
     }
}

现在,将选项数组设置为$_SESSION变量。

$_SESSION['yourProductID'] = $optionsSelected;

然后我们以这种方式显示产品的选项

foreach($_SESSION['yourProductID'] as $productOptions){
     echo $productOptions;
}