โตโต้

Wed 17 May 2006 21:52:28
Wed 17 May 2006 21:52:28
ผมกำลังทำโปรเจ็คท์แบบทดสอบออนไลน์โดยแสดงผลแบบหน้าละ 1 ข้อก็ใช้ได้ทุกอย่างตามต้องการ แต่ติดปัญหาว่าผมไม่สามารถเขียนโปรแกรมจับเวลาตามที่ admin กำหนดไว้ เช่น 90 นาที พอถึงเวลาที่กำหนดจะส่งค่าไปยังหน้าแสดงผลคะแนน ผมทำได้แค่แสดงเวลาในขณะนั้นเท่านั้น
ต้องแจ้งก่อนว่าผมก็ยังไม่เคยพัฒนาระบบแนวนี้ แต่คิดว่าพอเอาเป็นแนวทางนะครับ
ตอนเริ่มทำข้อสอบคงต้องมีการบันทึกตัวแปรลงใน cookie ว่าเริ่มที่เวลาเท่าใด และตั้งเวลาให้ javascript นับเวลาถอยหลังในหน้านั้นๆด้วยครับ เมื่อมีการตอบคำถามก็ให้ส่งเวลาที่เหลือไปยัง server
เมื่อมีการโหลดข้อสอบใหม่ก็มีการส่งเวลาที่เหลือไปนับต่อไปยัง client และใน javascript ก็ให้ตรวจสอบว่าเวลาหมดหรือยังเมื่อหมดแล้วให้ทำการ disable การคลิ๊กและ event อื่นๆ (ไม่ให้ทำข้อสอบต่อได้อีก) และทำการ post ไปยัง server และแจ้งว่าการทำข้อสอบเสร็จสิ้น
Solition นี้ผมยังไม่ได้ทำการทดลอง เท่าที่คิดอาจจะมีปัญหาเรื่อง loading time อาจจะเหลื่อมกันหน่อย ซึ่งอาจจะแก้ได้ด้วยการตรวจสอบว่าเมื่อโหลดเสร็จแล้วค่อยเริ่มจับเวลาและเริ่มทำข้อสอบได้
การทำ preload page ลองหาโค๊ดมาศึกษาได้จาก http://www.google.co.th/search?hl=th&q=javascript+loading+page&btnG=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2&meta=
ตอนเริ่มทำข้อสอบคงต้องมีการบันทึกตัวแปรลงใน cookie ว่าเริ่มที่เวลาเท่าใด และตั้งเวลาให้ javascript นับเวลาถอยหลังในหน้านั้นๆด้วยครับ เมื่อมีการตอบคำถามก็ให้ส่งเวลาที่เหลือไปยัง server
เมื่อมีการโหลดข้อสอบใหม่ก็มีการส่งเวลาที่เหลือไปนับต่อไปยัง client และใน javascript ก็ให้ตรวจสอบว่าเวลาหมดหรือยังเมื่อหมดแล้วให้ทำการ disable การคลิ๊กและ event อื่นๆ (ไม่ให้ทำข้อสอบต่อได้อีก) และทำการ post ไปยัง server และแจ้งว่าการทำข้อสอบเสร็จสิ้น
Solition นี้ผมยังไม่ได้ทำการทดลอง เท่าที่คิดอาจจะมีปัญหาเรื่อง loading time อาจจะเหลื่อมกันหน่อย ซึ่งอาจจะแก้ได้ด้วยการตรวจสอบว่าเมื่อโหลดเสร็จแล้วค่อยเริ่มจับเวลาและเริ่มทำข้อสอบได้
การทำ preload page ลองหาโค๊ดมาศึกษาได้จาก http://www.google.co.th/search?hl=th&q=javascript+loading+page&btnG=%E0%B8%84%E0%B9%89%E0%B8%99%E0%B8%AB%E0%B8%B2&meta=
โตโต้

Thu 18 May 2006 15:43:04
Thu 18 May 2006 15:43:04
ขอบคุณที่ให้คำแนะนำครับ ผมได้โค้ดจาวาสคริปท์ที่ใช้จับเวลาแบบนับถอยหลังมาแล้ว ก็ใช้ได้ครับ
ขอถามปัญหาเพิ่มอีกข้อครับ ผมทำเว็บแบบเป็นเฟรม พอผู้ใช้ล็อกอินเข้ามาแล้วเฟรมซ้ายจะเป็นเมนู เฟรมขวาจะเป็นรายละเอียด แต่หน้าล็อกอินไม่ได้แบ่งเฟรม ปัญหาคือพอล็อกเอาท์แล้วกลับไปหน้าที่ล็อกอินใหม่ หน้าล็อกอินมันไปอยู่ที่เฟรมขวา คือผมอยากให้มันเป็นแบบ phpmyadmin พอล็อกเอาท์ออกไปก็ย้อนไปหน้าล็อกอินโดยไม่อยู่ในเฟรมครับ
ขอถามปัญหาเพิ่มอีกข้อครับ ผมทำเว็บแบบเป็นเฟรม พอผู้ใช้ล็อกอินเข้ามาแล้วเฟรมซ้ายจะเป็นเมนู เฟรมขวาจะเป็นรายละเอียด แต่หน้าล็อกอินไม่ได้แบ่งเฟรม ปัญหาคือพอล็อกเอาท์แล้วกลับไปหน้าที่ล็อกอินใหม่ หน้าล็อกอินมันไปอยู่ที่เฟรมขวา คือผมอยากให้มันเป็นแบบ phpmyadmin พอล็อกเอาท์ออกไปก็ย้อนไปหน้าล็อกอินโดยไม่อยู่ในเฟรมครับ
ตอน logout แล้วก็ต้องสั่งให้ parent frame redirect ไปครับ เช่น
parent.location.href = 'index.html';
วิธีการก็เมื่อ user logout เสร็จแล้วก็ให้
echo "<script language=\"javascript\" type=\"text/javascript\">parent.location.href='index.html';</script>";
ลองดูนะครับ
parent.location.href = 'index.html';
วิธีการก็เมื่อ user logout เสร็จแล้วก็ให้
echo "<script language=\"javascript\" type=\"text/javascript\">parent.location.href='index.html';</script>";
ลองดูนะครับ
โตโต้

Fri 19 May 2006 01:29:36
Fri 19 May 2006 01:29:36
ได้แล้วครับขอบคุณครับ ส่วนการจับเวลานั้นผมโค้ดเป็นแบบนับถอยหลัง เช่นกำหนดไว้ 90 นาที
โดยผมเอาโค้ดไปไว้ที่เฟรมซ้ายพอกดปุ่มทำข้อสอบ โปรแกรมก็จะนับถอยหลังไปเรื่อยๆ ส่วนข้อสอบ
จะอยู่ที่เฟรมขวาพอครบกำหนดเวลา โปรแกรมก็จะรีไดเร็คท์ไปที่หน้าแสดงคะแนนทันที ก็ใช้วิธี ีparent frame redirect ที่คุณแนะนำ ถ้าคลิกที่ปุ่ม Back ก็กลับมาได้แต่ไม่สามารถแก้ไขข้อสอบได้ จะเกิด error ซึ่งผมไม่แน่ใจว่าเกิดจากอะไรแต่ไม่มีปัญหาเพราะผมไม่ต้องการให้แก้ไขได้อยู่แล้ว ในกรณีที่ยังไม่หมดเวลาก็สามารถแก้ไขได้ แต่ถ้าล็อกอินกลับเข้าไปใหม่ข้อสอบที่ได้จะไม่เหมือนเดิม เพราะว่าเป็นโปรแกรมสุ่มข้อสอบตามระดับความยากคือแต่ละข้อจะมีการกำหนดค่าความยากตั้งแต่
1- 5 ซึ่งแอดมินจะเป็นผู้เลือก มีปัญหาอีกข้อหนึ่งคือการตั้งชื่อตารางหรือชื่อฐานข้อมูลใน MySQL
โดยใช้โค้ด PHP ผมไม่สามารถทำได้ชื่อตารางมันกลายเป็นชื่อตัวแปรที่ผมตั้งไว้รับค่าจาก Text box ซึ่งผมใช้วิธีโพสท์ โดยกำหนดรับตัวแปรแบบนี้ $_POST[name] ถ้าเป็นภาษาอังกฤษไม่มีปัญหา ส่วนข้อมูลตอนอินเสิร์ทเข้าไปในตารางหรือนำออกมาแสดงผลที่หน้าจอก็เป็นภาษาไทยได้ครับ
โดยผมเอาโค้ดไปไว้ที่เฟรมซ้ายพอกดปุ่มทำข้อสอบ โปรแกรมก็จะนับถอยหลังไปเรื่อยๆ ส่วนข้อสอบ
จะอยู่ที่เฟรมขวาพอครบกำหนดเวลา โปรแกรมก็จะรีไดเร็คท์ไปที่หน้าแสดงคะแนนทันที ก็ใช้วิธี ีparent frame redirect ที่คุณแนะนำ ถ้าคลิกที่ปุ่ม Back ก็กลับมาได้แต่ไม่สามารถแก้ไขข้อสอบได้ จะเกิด error ซึ่งผมไม่แน่ใจว่าเกิดจากอะไรแต่ไม่มีปัญหาเพราะผมไม่ต้องการให้แก้ไขได้อยู่แล้ว ในกรณีที่ยังไม่หมดเวลาก็สามารถแก้ไขได้ แต่ถ้าล็อกอินกลับเข้าไปใหม่ข้อสอบที่ได้จะไม่เหมือนเดิม เพราะว่าเป็นโปรแกรมสุ่มข้อสอบตามระดับความยากคือแต่ละข้อจะมีการกำหนดค่าความยากตั้งแต่
1- 5 ซึ่งแอดมินจะเป็นผู้เลือก มีปัญหาอีกข้อหนึ่งคือการตั้งชื่อตารางหรือชื่อฐานข้อมูลใน MySQL
โดยใช้โค้ด PHP ผมไม่สามารถทำได้ชื่อตารางมันกลายเป็นชื่อตัวแปรที่ผมตั้งไว้รับค่าจาก Text box ซึ่งผมใช้วิธีโพสท์ โดยกำหนดรับตัวแปรแบบนี้ $_POST[name] ถ้าเป็นภาษาอังกฤษไม่มีปัญหา ส่วนข้อมูลตอนอินเสิร์ทเข้าไปในตารางหรือนำออกมาแสดงผลที่หน้าจอก็เป็นภาษาไทยได้ครับ
ถ้า post มาในก็เพียง
$link = mysql_connect($host, $user, $pass);
mysql_select_db($dbname, $link);
mysql_query("ALTER TABLE table_name RENAME '".$_POST["name"]."'", $link); //เปลี่ยนชื่อ table
mysql_close($link);
แต่ถ้าเป็น code สำหรับการติดตั้งโดยปกติก็เพียงเลือก database ให้ถูกเท่านั้นส่วนโค๊ดการสร้างตารางข้อมูลก็ให้ mysql_dump หรือ phpMyAdmin dump โครงสร้างและข้อมูลเป็นไฟล์ sql เวลาติดตั้งก็อ่านออกมาแล้วจับใส่ mysql_query() เท่านั้นครับ
$link = mysql_connect($host, $user, $pass);
mysql_select_db($dbname, $link);
mysql_query("ALTER TABLE table_name RENAME '".$_POST["name"]."'", $link); //เปลี่ยนชื่อ table
mysql_close($link);
แต่ถ้าเป็น code สำหรับการติดตั้งโดยปกติก็เพียงเลือก database ให้ถูกเท่านั้นส่วนโค๊ดการสร้างตารางข้อมูลก็ให้ mysql_dump หรือ phpMyAdmin dump โครงสร้างและข้อมูลเป็นไฟล์ sql เวลาติดตั้งก็อ่านออกมาแล้วจับใส่ mysql_query() เท่านั้นครับ
พน

Fri 30 May 2008 16:26:37
Fri 30 May 2008 16:26:37
ขอโค้ด หน่อยครับ

















