仍无法解决此问题
所以这就是我想要做的事情:
在购物车中添加带有选项的产品。可以通过<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"];
放在上面的代码上方以获取选项。
如何才能使选项数组存储在每个产品的会话中?
在下图中,您可以看到我正在谈论的内容......我想在特定产品的选项列下显示每个选定的选项。
答案 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;
}