调查问卷数据库设计

表格:用户表—选用网站用户表
问卷表—包含调查问卷自动编号、标题、前言、开启时间、结束时间、创建时间
问题表—包含问题编号、问题标题、相应的问卷编号、问题类型
选项表—包含选项编号、选项值、选项对应的问题、对应的问卷
答案表—用户编号、问卷编号、问题编号、答案内容
注:对于多选问题,每一条答案记录一条记录
统计:进行数据统计时,每一条答案记录统计一次,统计条件:

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值