用户问卷算法加前台处理

业务需求:

做一套问卷系统,用户填写完问卷之后,点击提交按钮,根据用户提交的答案即获得问卷结果

前台逻辑:

在每个选项后面跟一个checkbox 并设置value值为1A,2B,3C......

利用jquery获取所有用户勾选的checkbox的值,把他们装在一个数组中,

点击提交按钮以后,绑定一个点击事件—发送ajax请求给后台,利用post提交数据将处理好的答案给后台做比较

返回结果并做相应的处理

 1             var chk_value =[];
 2             //获得选取的内容
 3             $('input[name="answer"]:checked').each(function(){
 4                 chk_value.push($(this).val());
 5             });
 6 /********************************************************************************/
 7                 var i=0;
 8                 var values='';
 9                 var checked = $("input:checked");//获取所有被选中的标签元素
10                 for(i=0;i<checked.length;i++)
11                 { //将所有被选中的标签元素的值保存成一个字符串,以逗号隔开
12                     if(i<checked.length-1)
13                         values+=checked[i].value+',';
14                     else
15                         values+=checked[i].value;
16                 }

后台逻辑:

根据提交的数组获取答案,并返回给前台

 1   public function userType($answer=array())
 2     {
 3         /**
 4          * 基本类型
 5          */
 6         $one = ['3D','4D','4E'];
 7         $two = ['3A','4A','7A','7B','8A','8B'];
 8         $ten =  ['10A','10B','10C','10D','10E','10F'];//第十题答案
 9 
10         /*
11          *判断类型 1 为**型 2为**型 3为**型
12          */
13         //判断是否为**类型
14         if( !empty(   array_intersect($answer,$ten) )){ //判断用户是否选中了最后一题
15             if (   !empty(   array_intersect($answer,$one)   )   ) {
16                 return 1;
17             }else{
18                 //判断用户是否为2类型
19                 if (    !empty(    array_intersect($answer,$two)  )    ) {
20                     return 2;
21                     //其余为3类型
22                 }else{
23                     return 3;
24                 }
25             }
26         }else{
27                 return false;
28         }
29 
30     }

后台业务处理包括数据的入库,将提交的数组用implode()成字符串再做入库处理

原文地址:https://www.cnblogs.com/zhoupufelix/p/6645729.html