PHP:向会话数组添加选项

PHP:向会话数组添加选项,php,arrays,multidimensional-array,session-variables,add,Php,Arrays,Multidimensional Array,Session Variables,Add,在订单过程中,我有一个步骤,可以选择多个选项添加到订单中。我将它存储在会话中,以便它显示在我的购物车和订单摘要中 我现在的问题是,我的代码只添加了一个选项。但是,需要添加多个选项 目前的情况是,排序过程中的每个步骤都有一个view.html.php和一个default.php控制器和视图 对于添加选项过程中的这一特定步骤,我最终得到了以下代码: 在view.html.php中: if(JRequest::getVar('reset')) { unset ($_SE

在订单过程中,我有一个步骤,可以选择多个选项添加到订单中。我将它存储在会话中,以便它显示在我的购物车和订单摘要中

我现在的问题是,我的代码只添加了一个选项。但是,需要添加多个选项

目前的情况是,排序过程中的每个步骤都有一个view.html.php和一个default.php控制器和视图

对于添加选项过程中的这一特定步骤,我最终得到了以下代码:

在view.html.php中:

if(JRequest::getVar('reset')) {
                unset ($_SESSION['selectedoptions'][$plan->id]);    
                $mainframe->redirect(html_entity_decode(JRoute::_( '$url')));
            }
            elseif(JRequest::getVar('add')){
                $_SESSION['selectedoptions'][] = $plan->id;
                $mainframe->redirect(html_entity_decode(JRoute::_( '$url')));
            }
在default.php中:

<?php if(isset($_SESSION['selectedoptions'][$plan->id])): ?>
            <input class="btn-address btn-address-text" type="submit" name="reset" value="Verwijderen" />
        <?php else: ?>
            <input class="btn-address btn-address-text" type="submit" name="add" value="Toevoegen" />
        <?php endif; ?>
我希望该功能向数组中添加一个选项,以便以后可以读取数组值以显示所选项目。我做错了什么


希望有人能帮助我,提前谢谢

检查值是否以错误的方式存在

你可以:

<?php if(isset($_SESSION['selectedoptions'][$plan->id])): ?>
你应该做:

$_SESSION['selectedoptions'][$plan->id] = 1;
然后,default.php中的代码应该可以工作

编辑2

在default.php文件中,您应该添加:

<input type="hidden" name="plan_id" value="<?php echo $plan->id; ?>" />

您是否已添加会话_start;在PHP文件的同一开头?所以问题可能在其他地方。也许你在$会话中没有任何内容,也许你没有进入你的语句。如果没有var_dump和您提供的更多信息,很难说我目前正在打印用于调试的array$\u会话['selectedoptions',因此我可以看到其中的内容。但它只打印数组。因此,我假设向数组中添加项不起作用。var_dump$\u SESSION['selectedoptions']打印以下内容:array1{[1]=>int1}。因此,此数组中有一个元素的索引为1。所以,在default.php中,当您选中并将$plan->id值设置为1时,您应该显示重置按钮
$_SESSION['selectedoptions'][$plan->id] = 1;
<input type="hidden" name="plan_id" value="<?php echo $plan->id; ?>" />
if(JRequest::getVar('reset')) {
                unset ($_SESSION['selectedoptions'][JRequest::getVar('plan_id')]);    
                $mainframe->redirect(html_entity_decode(JRoute::_( '$url')));
            }
            elseif(JRequest::getVar('add')){
                $_SESSION['selectedoptions'][JRequest::getVar('plan_id')] =  1;
                $mainframe->redirect(html_entity_decode(JRoute::_( '$url')));
            }