在我的应用程序中有不同的促销活动,用户可以使用单选题或多选题回答这些促销活动。我使用以下逻辑,除了一个问题外,它运行良好:
for ($i=0;$i<count($questions);$i++)
{
if($questions[$i][type_of_question] == 'multiple_choice')
{
$options_array = explode(",", $_REQUEST["que".$questions[$i][id]]);
}
// Code here which insert answers in database table
}
这行代码:
$options_array = explode(",", $_REQUEST["que".$questions[$i][id]]);
此代码显示问题的逗号分隔答案。例如:
示例1:test1,test2,test3[此场景运行良好]
示例2:是的,不是,我不感兴趣(板球,足球)
示例2显示了问题,例如,如果存在,则在选项内部。Php根据分解函数break和值,所以在这种情况下,我得到4个数组元素。
Array[0] => yes
Array[1] => no
Array[3] => I am not interested(cricket
Array[4] => footbal
而我需要以下内容:
Array[0] => yes
Array[1] => no
Array[3] => I am not interested(cricket,footbal)
如何解决此问题?有什么建议吗?
您需要修复从前端输入数据的方式:仅此代码无法解决此问题。例如,您可以有输入yes, no, maybe
,它可以是yes
、no
、maybe
或yes
、no, maybe
。
您需要在前端执行一些一致的编码或转义,以便能够唯一地访问记录。你还没有告诉我们它是如何在前面提交的,但仅仅用逗号将答案连接在一起是不够的。你可以试着转义字段中的逗号!