表格:用户表—选用网站用户表
问卷表—包含调查问卷自动编号、标题、前言、开启时间、结束时间、创建时间
问题表—包含问题编号、问题标题、相应的问卷编号、问题类型
选项表—包含选项编号、选项值、选项对应的问题、对应的问卷
答案表—用户编号、问卷编号、问题编号、答案内容
注:对于多选问题,每一条答案记录一条记录
统计:进行数据统计时,每一条答案记录统计一次,统计条件:
select * from `table_name` where answer_proid = `problem_id` and answer_quesid = `question_id` and answer_value = 'A' group by answer_proid;
对于多选的数值提交:
前台页面:
<input type="hidden" id="i" name="i" value="<?php echo $i;?>"/>
<p><?php echo $i."、".$rows['problem_title'];?></p>
<input type="hidden" id="pro<?php echo $i?>" name="pro<?php echo $i?>" value="<?php echo $rows['problem_id']?>"/>
<input type='hidden' id="protype<?php echo $i;?>" name="protype<?php echo $i;?>" value="<?php echo $protype;?>"/>
<?php
$sql2="select * from jinling_option where option_proid=".$rows['problem_id'];
$result2=mysql_query($sql2);
$nums=mysql_num_rows($result2);
if($nums>0){
while($row2=mysql_fetch_assoc($result2)){
if($protype=="1"){
$btntype="radio";
?>
<p style="margin-left:20px;">
<input type="<?php echo $btntype;?>" id="radiopt<?php echo $i;?>" name="radiopt<?php echo $i;?>" value="<?php echo $row2['option_value'];?>">
<?php echo $row2['option_content'];?>
</p>
<?php
}
if($protype=="2"){
$btntype="checkbox";
?>
<p style="margin-left:20px;">
<input type="<?php echo $btntype;?>" id="option[]" name="option[]" value="<?php echo $row2['option_value'];?>">
<?php echo $row2['option_content'];?>
</p>
<?php
}
}
}
?>
后台数据接收:
for($y=1;$y<=$i;$y++){
$proid=sqlReplace(trim($_POST['pro'.$y]));
$protype=sqlReplace(trim($_POST['protype'.$y]));
if($protype=="1"){
$option = sqlReplace(trim($_POST['radiopt'.$y]));
$sql2="insert into jinling_answer (answer_proid,answer_user,answer_time,answer_quesid,answer_content)values(".$proid.",".$user_id.",now(),".$quesid.",'".$option."')";
//echo $sql2;
mysql_query($sql2);
}elseif($protype=="2"){
for($a=0;$a<count($_POST['option']);$a++){
$option2 = sqlReplace(trim($_POST['option'][$a]));
$sql3="insert into jinling_answer (answer_proid,answer_user,answer_time,answer_quesid,answer_content)values(".$proid.",".$user_id.",now(),".$quesid.",'".$option2."')";
//echo $sql3;
mysql_query($sql3);
}
}
}
alertInfo("问卷提交成功",'survey.php',0);
关于动态添加html元素的js:
<script type="text/javascript">
var count = 2;
var myopt = new Array('A','B','C','D','E','F','G','H');
function Add(){
count += 1;
var opt = myopt[count-1];
var File1 = document.getElementByIdx_x_x("quetype");
var p = document_createElement_x_x("p");
var inputTxt = document_createElement_x_x("input");
inputTxt.type = "text";
inputTxt.name = "optionname"+count;
inputTxt.id = "optionname"+count;
inputTxt.value = "";
var inputhi = document_createElement_x_x("input");
inputhi.type="hidden";
inputhi.value=opt;
inputhi.id="option"+count;
inputhi.name="option"+count;
var countopt = document_createElement_x_x("input");
countopt.type="hidden";
countopt.id="countopt";
countopt.name="countopt";
countopt.value=count;
var btn = document_createElement_x_x("input");
btn.type = "image";
btn.src="images/add.gif";
btn.onclick = function(){
Add(this);
return false;
}
p.a(inputhi);
p.a(countopt);
p.a(inputTxt);
p.a(btn);
File1.a(p);
}
</script>