业务需求:
做一套问卷系统,用户填写完问卷之后,点击提交按钮,根据用户提交的答案即获得问卷结果
前台逻辑:
在每个选项后面跟一个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()成字符串再做入库处理