【问题标题】:CakePHP 2: How to store answer session of multiple choiceCakePHP 2:如何存储多项选择的答案会话
【发布时间】:2015-06-27 17:49:37
【问题描述】:

我想存储用户从多选题中选择的答案,如下图所示:

当用户在另一个问题 ID 中更新他们的答案时,我遇到了麻烦。 我在传递用户答案时使用 url 参数,然后使用 ajax 请求在服务器端处理它。

这是我的代码:

//php code in server side
$answer[] = array(
        'questionItemId' => $questionItemId, 
        'choice' => $choice
    );
    $newSession = array();

    if(!$this->Session->check('answerChoice')) {
        $this->Session->write('answerChoice', $answer);
    } else {
        $sessionChoice = $this->Session->read('answerChoice');
        foreach($sessionChoice as $itemChoice) {
            if($itemChoice['questionItemId'] == $questionItemId) {
                if($itemChoice['choice'] != $choice) {
                    $newSession[] = array(
                        'questionItemId' => $questionItemId, 
                        'choice' => $choice
                    );
                }
            }
        }
        $this->Session->write('answerChoice', $newSession);
    }
    debug($this->Session->read('answerChoice'));

//ajax js in client side
$('#choiceA, #choiceB, #choiceC, #choiceD').on('click', function() {
    $.ajax({
        url: BASE_URL + 'ajaxed_handlers/refresh_answer/' + $(this).attr('question-item-id') + '/' + $(this).val(),
        success:function(data){
            $('#theform').html(data); //refresh answer done list
        }
    });
});

如图所示的调试结果:

图片问题编号 1

图片问题2

非常感谢任何帮助。谢谢。

【问题讨论】:

  • 你有什么问题?您必须描述这一点,以便其他人能够帮助您。
  • 嗨,当用户通过单击下一个问题中的单选框选择新答案时,我想将其存储,然后将其与上一个问题中的上一个答案合并。此外,用户应该能够通过转到下一张/上一张幻灯片来更改他们在任何问题编号中的答案。例如:第 1 题选择 A 作为答案,然后以 B 作为答案转到第 2 号幻灯片中的下一张幻灯片,但用户应该能够更改他们在任何题号中的答案。
  • 好的,这就是您想要实现的目标,但它让您失望的是:什么时候您还有数据,什么时候不再有数据。 (还有你“嗨,什么时候”评论;使用编辑更新你的主要问题,这有助于其他观众:问题看起来越好,答案的机会就越大。
  • 感谢诺伯特的建议。我刚刚用 2 张图片更新了我的问题。当用户单击单选 A 作为答案时,其问题编号 1 带有调试结果,然后单击下一步按钮以 C 作为答案继续问题编号 2。但是看结果,调试Session是空的。它的灵魂仍然有第一个答案和第二个答案。

标签: php session cakephp choice


【解决方案1】:

我已经为这个问题做了。我将存储会话答案的方式更改为从 ajax 请求提交表单。

感谢您的关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2016-09-24
    相关资源
    最近更新 更多