【发布时间】: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