รบกวนผู้รู้ค่ะ คือตอนนี้ทำโปรเจคจัดเก็บข้อสอบออนไลน์ สร้างข้อสอบและดึงข้อสอบมาให้นักเรียนสอบได้แล้วแต่ติดตรงที่ตรวจข้อสอบเสร็จจะเก็บคำตอบทีนักเรียนเลือกลงฐานข้อมูลค่ะ
** ก็ ถ้าข้อไหน ถูก ก็..ส่งค่า ID หรืออะไรสั่งอย่าง ที่บ่งบอกว่า เป็นคำตอบของข้อนั้น แล้วก้..INSERT ลงฐานข้อมูลได้เลยค่ะ !!
Date :
2013-02-23 15:40:59
By :
linping
ขอดูโค๊ดประกอบด้วยครับ
Date :
2013-02-23 15:42:57
By :
Ex-[S]i[L]e[N]t
โค้ดแสดงข้อสอบค่ะ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>ข้อสอบให้เลือกตอบข้อที่ถูกต้อง</title>
</head>
<?php
function format_date_th ($value,$type) {
if (strlen ($value) > 10) {
list ($s_date,$s_time) = split (" ", $value);
list ($s_year, $s_month, $s_day) = split ("-", $s_date);
list ($s_hour, $s_minute, $s_second) = split (":", $s_time);
}
else{
list ($s_year, $s_month, $s_day) = split ("-", $value);
}
$s_month +=0;
$s_day += 0;
if ($s_day == "0") return "";
$s_year += 543;
$month_full_th = array ('','มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม',' กันยายน', 'ตุลาคม', 'พฤศจิกายน','ธันวาคม');
$month_brief_th = array ('','ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.');
$day_of_week = array("อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์");
switch ($type) {
case "1" : // วันที่ 1 มกราคม 2552 เวลา 14.01 น.
$msg = "วันที่ ". $s_day . " " . $month_full_th[$s_month] . " " . $s_year . " เวลา " . $s_hour . "." . $s_minute . " น." ;
break;
case "2" : // 1 ม.ค. 2548 14.11 น.
$msg = $s_day . " " . $month_brief_th[$s_month] . " " . $s_year . " " . $s_hour . "." . $s_minute . " น." ;
break;
case "3" : // วันที่ 1 มกราคม 2552
$msg = "วันที่ ". $s_day . " " . $month_full_th[$s_month] . " " . $s_year ;
break;
case "4" : // 1 มกราคม 2552
$msg = $s_day . " " . $month_full_th[$s_month] . " " . $s_year ;
break;
case "5" : // 1 ม.ค. 2552
$msg = $s_day . " " . $month_brief_th[$s_month] . " " . $s_year ;
break;
case "6" : // 1 ม.ค. 52
$msg = $s_day . " " . $month_brief_th[$s_month] . " " . substr($s_year,-2) ;
break;
}
return ($msg);
}
echo format_date_th (date("Y-m-d H:i:s"),"1"); // วันที่ 1 มกราคม 2552 เวลา 14.01 น.
?>
<br/><br/><b><b/><br/><br/>
<!--<script language="JavaScript">
window.history.forward(1);
document.attachEvent("onkeydown", my_onkeydown_handler);
function my_onkeydown_handler()
{
switch (event.keyCode)
{ case 116 : // 'F5'
event.returnValue = false;
event.keyCode = 0;
window.status = "ไม่สามารถทำการ Refresh หรือ กด F5 ได้ ค่ะ";
break;
}
}
</script>-->
<script language="JavaScript">
<!-- Begin
text = "ให้นักเรียนเลือกข้อที่ถูกต้องเพียงข้อเดียวเท่านั้น" // The text to scroll
color1 = "black"; // original text color
color2 = "orange"; // new character color
fontsize = "3"; // font size of text
speed = 100; // how fast to rotate to next character
// time is in milliseconds, (i.e. 1000 = 1 second)
i = 0;
if (navigator.appName == "Netscape") {
document.write("<layer id=a visibility=show></layer><br><br><br>");
}
else {
document.write("<div id=a></div>");
}
function changeCharColor() {
if (navigator.appName == "Netscape") {
document.a.document.write("<font size =" + fontsize + "><font color=" + color1 + ">");
for (var j = 0; j < text.length; j++) {
if(j == i) {
document.a.document.write("<font color=" + color2 + ">" + text.charAt(i) + "</font>");
}
else {
document.a.document.write(text.charAt(j));
}
}
document.a.document.write('</font></font>');
document.a.document.close();
}
if (navigator.appName == "Microsoft Internet Explorer") {
str = "<font size=" + fontsize + "><font color=" + color1 + ">";
for (var j = 0; j < text.length; j++) {
if( j == i) {
str += "<font color=" + color2 + ">" + text.charAt(i) + "</font>";
}
else {
str += text.charAt(j);
}
}
str += "</font></font>";
a.innerHTML = str;
}
(i == text.length) ? i=1 : i++;
}
setInterval("changeCharColor()", speed);
// End -->
</script>
<form name="frmTest" method="post" action="random_check.php">
<?php
$number=1;
include "include/connectionDb.php";
$sql="select * from test order by rand() limit 0,5";
$result=mysql_db_query("student",$sql);
while ($r=mysql_fetch_array($result)){
$id=$r[id];
$q=$r[q];
$c1=$r[c1];
$c2=$r[c2];
$c3=$r[c3];
$c4=$r[c4];
echo"<br>";
echo"$number. $q<br>";
echo"<input type='radio' name='select_$id' value='1'>$c1<br>";
echo"<input type='radio' name='select_$id' value='2'>$c2<br>";
echo"<input type='radio' name='select_$id' value='3'>$c3<br>";
echo"<input type='radio' name='select_$id' value='4'>$c4";
echo"<input type='hidden' name='total_question[]' value='$id'<br>";
echo"<hr>";
$number++;
}
?>
<center><input type="submit" value="ส่งข้อสอบ"/><input type="reset" value="ยกเลิก"/></center>
</form>
Date :
2013-02-23 15:44:21
By :
supunsa
โค้ดเช็คคำตอบค่ะ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>ข้อสอบให้เลือกตอบข้อที่ถูกต้อง</title>
</head>
<body>
<?php
$correct=0;
$total=count($total_question);
include "include/connectionDb.php";
$sql="select id, chk from test order by id";
$result=mysql_db_query("student",$sql);
while ($r=mysql_fetch_array($result)){
$id=$r[id];
$q=$r[q];
$c1=$r[c1];
$c2=$r[c2];
$c3=$r[c3];
$c4=$r[c4];
$chk=$r[chk];
if (in_array($id, $total_question)){
$select="select_".$id;
if (${$select}==$chk) {
$correct++;
}
}
}
echo "<center>";
echo"<h2>ถูกต้องทั้งหมด $correct ข้อ <br>";
echo "ข้อสอบทั้งหมด $total ข้อ </h2>";
echo "</center>";
$sql="insert into answer(id_test,id,select_choice,chk,total,correct,testdate,teststart,teststop) values ('$id_test','$id',${$select},'$chk','$total','$correct',CURDATE(),'$teststart',NOW())";
mysql_query("SET NAMES UTF8");
$result=mysql_query($sql);
mysql_close($objConnect);
?>
รบกวนด้วยนะค่ะ มือใหม่ค่ะ
คือต้องการเก็บคำตอบในฟิลด์เดียว เช่น นักเรียนทำข้อสอบ 5 ข้อ ก็บันทึก เป็น 24312 ประมาณนี้ค่ะ ^-^
Date :
2013-02-23 15:46:15
By :
supunsa
เงียบเลยค่ะ
Date :
2013-02-23 17:54:46
By :
supunsa
Load balance : Server 03