• 用户问卷算法加前台处理


    业务需求:

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

    前台逻辑:

    在每个选项后面跟一个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()成字符串再做入库处理

  • 相关阅读:
    删掉从svn 文件夹里复制出来所带的信息(去掉.svn文件夹)
    AS3 loader
    as3鼠标事件
    linux 随机数
    AS3资源处理
    字符串合并
    linux time.h
    fat32转ntfs
    linux 杂项
    oracle——创建数据表
  • 原文地址:https://www.cnblogs.com/zhoupufelix/p/6645729.html
Copyright © 2020-2023  润新知