<?php
/*
Updated : 2558-10-07
คุณลักษณะแบบสอบถาม
- รองรับการประเมินแบบ Blind คือ ไม่เก็บข้อมูลเฉพาะบุคคลของผู้เข้าประเมิน
- การรายงานผลสามารถเปิดดูรายงานได้ทุกคน เป็นสาธารณะ
- กำหนดให้ผู้มีรหัสเฉพาะเท่านั้น จึงจะเข้าประเมินได้
ลักษณะของแบบสอบถาม
- คำถามที่ 1 เป็นคำถามนับจำนวน
- คำถามที่ 2 - 13 เป็นคำถาม 5 ระดับ
- คำถามที่ 14 เป็นคำถามความคิดเห็น
ตารางออกแบบให้รองรับคำถามได้ 50 คำถาม
สำหรับ 3 เขตข้อมูลสุดท้าย เก็บ IP, Datetime และ ID แบบ Auto_increment
ตาราง test มีเขตข้อมูล f1 - f15 , ip, dt, id ทั้งหมดเป็นแบบ varchar
#######################################
*/
$host = "localhost";
$db = "test";
$tb = "test";
$user = "root";
$password = "";
$key = "hello";
$title1 = "แบบประเมินผล ...";
$title2 = "โปรด...";
$title_report = "สรุปผล<br/>การประเมินผลการปฏิบัติงานการบริหารจัดการหลักสูตร";
$total_ques = 5;
$back = "<a href=http://www.thaiall.com>กลับสู่หน้าหลัก</a>";
$ques = "ท่านเป็นอาจารย์ประจำหลักสูตร,วิทยาการคอมพิวเตอร์,คอมพิวเตอร์ธุรกิจ
1. ท่านมีส่วนร่วมในการวางแผนการดำเนินงานของหลักสูตร,ต้องปรับปรุง,น้อย,ปานกลาง,ดี,ดีมาก
2. การกำหนดอาจารย์ผู้สอนในรายวิชาของหลักสูตรมีความเหมาะสม,ต้องปรับปรุง,น้อย,ปานกลาง,ดี,ดีมาก
3. ปริมาณงานสอนที่ท่านได้รับมีความเหมาะสมและสอดคล้องกับภาระหน้าที่อื่นๆ,ต้องปรับปรุง,น้อย,ปานกลาง,ดี,ดีมาก";
$thisday = date("d/m/Y H:i:s",mktime(date("H"), date("i"), date("s") , date("n") , date("j"), date("Y")));
///////////////////////////////////////////////////////////////////////////////////////////////////
?><html><head><title>evaluation</title>
<meta http-equiv="content-type" content="text/html; charset=windows-874">
<style type="text/css">
body,td{font-family:microsoft sans serif;font-size:16pt;color:#000000;}
</style></head><body topmargin="0" leftmargin="0">
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// show question & option
// แสดงตัวเลือก ให้ออกความคิดเห็น
if (!isset($_GET{'f1'}) && !isset($_POST{'f1'})) {
echo "<center><font size=6>$title1</font></center>";
echo "<table border=1 width=760 align=center bgcolor=#f9f9f9 bordercolor=#dddddd><td><font size=4>$title2</font></td></table>";
echo "<table width=760 align=center>";
$q = preg_split("/[\r\n]+/",$ques);
$j = 0;
foreach ($q as $v) {
$j++;
$subq = preg_split("/[,]+/",$v); // preg_split("/[\s,]+/",$v);
echo "<form action='' method=post><tr><td bgcolor=#ddffdd><b>$subq[0]</b></td>";
for($i=1;$i<count($subq);$i++) {
echo "<tr><td bgcolor=#ffffdd><input type=radio name=f".$j." value=$i>$subq[$i] </td></tr> \n";
} // for
echo "</tr>";
} // foreach
echo "<tr><td bgcolor=#dddddd>ข้อเสนอแนะอื่น ๆ<br/><textarea rows=5 cols=60 name=f14></textarea></td></tr> \n";
echo "</table>";
echo "<center> รหัสพิเศษเพื่อยืนยันสิทธิเข้าประเมิน <input name=key style='background-color:red;color:white;font-size:40px;'><br/>";
echo "<input type=submit Value='ส่งแบบสอบถาม' style='width:600;height:100;background-color:yellow;font-size:40px;'></form> \n";
echo "<br/>$thisday<br/>". $_SERVER["REMOTE_ADDR"];
echo "<br/>สรุปรายงานผล :<a href=?f1=999>คลิ๊กที่นี่</a>";
} // if
///////////////////////////////////////////////////////////////////////////////////////////////////
// insert record เพิ่มความคิดเห็นใหม่
if ($_POST{'f1'} > 0 && $_POST{'f1'} < 999 && $_POST{'key'} == $key) {
$connect = mysql_connect("$host","$user","$password");
$get_field = 'f1';
$get_value = '"'.$_POST{'f1'}.'"';
for($i=2;$i<=$total_ques;$i++) {
if(isset($_POST["f" . $i])) {
$get_field .= ",f" . $i;
$get_value .= ',"' . $_POST{'f' . $i} . '"';
} // if
} // for
$query = "insert into $tb ($get_field,ip,dt) values(" . $get_value. ",'" . $_SERVER["REMOTE_ADDR"] . "','" . $thisday ."')";
$result = mysql_db_query($db,$query);
if ($result) {
echo '<center>บันทึก : เรียบร้อย';
echo "<center>สรุปรายงานผล :<a href=?f1=999>คลิ๊กที่นี่</a><br/>" . $back;
} else echo "บันทึก : ไม่เรียบร้อย <br/>$query";
} // if
///////////////////////////////////////////////////////////////////////////////////////////////////
// รายงานผลการออกความคิดเห็น
if ($_GET{'f1'} == "999") {
$connect = mysql_connect("$host","$user","$password");
$query = "select * from $tb";
$result = mysql_db_query($db,$query);
$tscore = 0;
if ($result) echo "<center><b>$title_report</b><br>"; else { echo "connect : fail"; exit; }
while ($object = mysql_fetch_object($result)) {
for($i=1;$i<=$total_ques;$i++) {
if ($i == 14) {
if (strlen($object->{"f" . $i}) > 1) $fo{$i} .= "- " . $object->{"f" . $i} . "<br/>"; // comment
} elseif ($i == 1) {
$fd1{intval($object->{"f" . $i})} += 1;
} else {
$fo{$i} += intval($object->{"f" . $i});
$tscore += intval($object->{"f" . $i});
} // 5 scales
} // for
} // while
$tot = mysql_num_rows($result);
echo "มีจำนวนผู้ตอบแบบสอบถามทั้งสิ้น $tot คน";
mysql_close($connect);
//
echo "<table width=760 align=center bgcolor=#f9f9f9>";
echo "<tr align=center bgcolor=#dddddd><td>คำถาม</td><td>เฉลี่ย</td></tr>";
$q = preg_split("/[\r\n]+/",$ques);
$j = 0;
foreach ($q as $v) {
$j++;
$subq = preg_split("/[,]+/",$v);
if ($j == 1) { // count questionaire
echo "<tr bgcolor=#ddffdd><td colspan=2>$subq[0]</td></tr>";
for($i=1;$i<count($subq);$i++) { echo "<tr bgcolor=#ddffdd><td>- $subq[$i] </td><td align=right>". $fd1{$i} ."</td></tr> \n"; }
echo "</td></tr>";
} else {
echo "<tr bgcolor=#ffffdd><td>$subq[0]</td><td align=right>" . substr($fo{$j} / $tot,0,4) ."</td></tr>";
}
} // foreach
echo "<tr bgcolor=#ffdddd><td align=right>คะแนนเฉลี่ย</td><td align=right>". substr($tscore/12/$tot,0,4) ."</td></tr>";
echo "<tr><td><b>ข้อเสนอแนะ</b><br/>". $fo{14} ."</td></tr>";
echo "</table><center>$back";
} // if
?>
จำนวน : 127 บรรทัด